似乎在redis服务器之间同步数据的唯一方法是使用命令slaveof
,但如何知道数据是否已成功复制?我的意思是,我希望在同步完成后通知。
我已经阅读了redis的一些资源代码,主要是replication.c
,并且没有找到正式的。我现在知道的唯一方法是使用redis命令info
,并通过轮询检查特定的标志,这看起来很糟糕。
有没有更好的方法呢?
答案 0 :(得分:1)
您尝试的方式,即slaveof
,是在Redis master和Redis slave之间同步数据。每当某些数据写入主站时,它将同步到从站。因此,从技术上讲,同步永远不会 DONE 。
如果您需要的是当前数据集的快照,则可以使用BGSAVE
命令将数据集保存到RDB
文件中。使用LASTSAVE
命令,您可以检查BGSAVE
是否已完成。然后将文件复制到另一台主机,并使用Redis加载它。