2011-07-12 41 views
1

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

我用例:

  • 仪表板应用:写入和读取的Redis(主Redis的实例)

  • 夫妇运行Redis的客户,只做读取另一个应用程序的实例。

  • 客户端在每X分钟后从主服务器进行复制。

问: - 我知道,当客户在做复制,他们被阻止的操作。但是,读取操作也阻止了?

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

提前感谢您的帮助!

回答

1

这不正是它says in the docs,它实际上说:

复制阻塞从属单元一侧:而从正在执行第一同步它无法回复查询。

如果你设置了一个奴隶,在连接它发送一个SYNC命令。不管它是第一次连接还是重新连接都没关系。

因此,在正常运行时,它根本不应该阻塞从属设备。 BUT读取在初始同步期间被阻止。

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

复制的工作原理是首先发送的一切(块) 然后将其发送增量更新(无阻塞的,因为它是“正义”的执行命令来修改数据集,以正确的顺序)

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