2011-11-30 92 views
3

我有一个Redis主节点,它将由主应用程序填充。然后,我将拥有多个此Redis节点的奴隶,这些奴隶可能位于不同的地点。这些节点将由该节点附近的应用读取。Redis复制问题

App1。 Slave1

App2。 Slave2

现在App1和App2以某种方式相关,我不希望在Slave1而不是Slave2上可用的特定数据段。

换句话说,我不想要任何同步延迟。我希望数据在同一时间同步。

主设备是否可能将更新推送给从设备,而不是从设备请求更新。

回答

4

换句话说,我不想要任何同步延迟。我希望数据在同一时间同步。

这是不可能的。理论上,分布式事务可以保证一致性。由于性能问题,Redis(和许多NoSQL)不使用分布式事务。

是否有可能主服务器将更新推送给从服务器而不是从服务器请求更新。

有一些误解。在redis中,主DO会将更新推送给从服务器。但是,这不能防止不一致(同步延迟)。

+0

那么,如果主人可以推动更新,那么会有一些延迟。如果每次更新的数据量都是几KB,那么可能需要1-2秒。这是可以接受的。 –