2011-11-30 38 views
3

我有一個Redis主節點,它將由主應用程序填充。然後,我將擁有多個此Redis節點的奴隸,這些奴隸可能位於不同的地點。這些節點將由該節點附近的應用讀取。Redis複製問題

App1。 Slave1

App2。 Slave2

現在App1和App2以某種方式相關,我不希望在Slave1而不是Slave2上可用的特定數據段。

換句話說,我不想要任何同步延遲。我希望數據在同一時間同步。

主設備是否可能將更新推送給從設備,而不是從設備請求更新。

回答

4

換句話說,我不想要任何同步延遲。我希望數據在同一時間同步。

這是不可能的。理論上,分佈式事務可以保證一致性。由於性能問題,Redis(和許多NoSQL)不使用分佈式事務。

是否有可能主服務器將更新推送給從服務器而不是從服務器請求更新。

有一些誤解。在redis中,主DO會將更新推送給從服務器。但是,這不能防止不一致(同步延遲)。

+0

那麼,如果主人可以推動更新,那麼會有一些延遲。如果每次更新的數據量都是幾KB,那麼可能需要1-2秒。這是可以接受的。 –