2013-03-06 64 views
3

假設我有一個主 - 從部署的Redis(1個主,1個從屬)和一個將管理髮布 - 訂閱的客戶端(webapp)。主從與發佈 - 訂閱連接

  • 我可以將消息發佈到從屬服務器,它們是否會被主服務器「看到」?
  • 或者我應該只使用Master for Publish和Slave for Subscribe命令?

我一直在環顧四周,但無法找到答案。有誰知道?

回答

1

對於您在Redis中存儲的典型數據,您只應寫入主數據。

http://redis.io/topics/replication

...寫道到從站]如果從設備和主將[原文如此]重新同步,如果從站重新啓動將被丟棄,或者...

事實上,從v2.6開始,你可以把奴隸放在slave-read-only模式下,這樣可以防止把數據寫入奴隸的錯誤。

文檔確實去提一個潛在的使用情況下,寫數據到從站:

...經常會有短暫的數據是不重要的,可以存儲 變成奴隸。例如,客戶端可以在從屬實例中獲取關於主設備的可達性的信息,以協調通過 策略的故障。

+3

是的,但這在發佈 - 訂閱場景中仍然如此嗎? – 2013-03-06 21:24:28

0

答案是對cluster-spec文檔:

發佈/訂閱

在Redis的集羣客戶可以訂閱到每個節點,也可以發佈到所有其他節點。羣集將確保發佈的消息根據需要進行轉發。 當前的實現將簡單地將每個發佈的消息廣播到所有其他節點,但是在某些時候,這將使用Bloom過濾器或其他算法進行優化。