Redis复制问题

时间:2011-07-12 16:27:56

标签: java nosql replication redis

我计划在我的存储应用程序中使用Redis。缓存。我在线阅读了大部分文档,但仍然有关于复制的问题。

我的用例:

  • 仪表板应用程序:从redis(Master redis实例)写入和读取

  • 运行redis客户端的另一个应用程序的几个实例,只执行读取。

  • 客户每隔X分钟就会从主人那里复制一次。

问题: - 我知道当客户端进行复制时,它们会被阻止进行操作。但是,读取操作是否也被阻止了?

  • 如果读取也被阻止,那么克服它的好方法是什么,因为我希望能够在没有任何块的情况下进行读取。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这并不完全是says in the docs,实际上是这样说的:

  

从属端的复制正在阻塞:当从属设备执行第一次同步时,它无法回复查询。

  

如果你设置了一个奴隶,连接时它会发送一个SYNC命令。如果它是第一次连接或者它是重新连接也没关系。

因此,在正常操作期间,它根本不应该阻塞对象。但在初始同步期间,读取被阻止。

您可以查看它当前是否正在与info命令同步; master_sync_in_progress:0

复制首先发送一切(块) 然后它发送增量更新(非阻塞,因为它只是“正好”修改数据集的执行命令,按正确顺序)

你只能通过连接到不同的redis实例来克服它,也许主要作为后备?