【发布时间】:2017-05-25 09:27:06
【问题描述】:
看来redis服务器之间同步数据的唯一方法就是使用命令slaveof,但是如何知道数据是否已经复制成功呢?我的意思是,我想在同步完成后收到通知。
看了一些redis的资源代码,主要是replication.c,没找到官方的。我目前知道的唯一方法是使用redis命令info,并通过轮询来检查特定标志,这看起来很糟糕。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: redis synchronization
看来redis服务器之间同步数据的唯一方法就是使用命令slaveof,但是如何知道数据是否已经复制成功呢?我的意思是,我想在同步完成后收到通知。
看了一些redis的资源代码,主要是replication.c,没找到官方的。我目前知道的唯一方法是使用redis命令info,并通过轮询来检查特定标志,这看起来很糟糕。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: redis synchronization
您尝试的方式,即slaveof,是在 Redis 主服务器和 Redis 从服务器之间同步数据。每当一些数据被写入主设备时,它将同步到从设备。因此,从技术上讲,同步永远不会DONE。
如果您想要的是当前数据集的快照,您可以使用BGSAVE 命令将数据集保存到RDB 文件中。使用LASTSAVE 命令,您可以检查BGSAVE 是否已完成。然后将文件复制到另一台主机,并使用 Redis 加载。
【讨论】: