2011-07-12 88 views
1

我打算在我的應用程序中使用Redis緩存的存儲&。我在線閱讀了大部分文檔,但仍然有關於複製的問題。Redis複製問題

我用例:

  • 儀表板應用:寫入和讀取的Redis(主Redis的實例)

  • 夫婦運行Redis的客戶,只做讀取另一個應用程序的實例。

  • 客戶端在每X分鐘後從主服務器進行復制。

問: - 我知道,當客戶在做複製,他們被阻止的操作。但是,讀取操作也阻止了?

  • 如果讀取也被阻塞,那麼克服它的好方法是什麼,因爲我希望能夠在沒有任何塊的情況下進行讀取。

提前感謝您的幫助!

回答

1

這不正是它says in the docs,它實際上說:

複製阻塞從屬單元一側:而從正在執行第一同步它無法回覆查詢。

如果你設置了一個奴隸,在連接它發送一個SYNC命令。不管它是第一次連接還是重新連接都沒關係。

因此,在正常運行時,它根本不應該阻塞從屬設備。 BUT讀取在初始同步期間被阻止。

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

複製的工作原理是首先發送的一切(塊) 然後將其發送增量更新(無阻塞的,因爲它是「正義」的執行命令來修改數據集,以正確的順序)

你只能通過連接到不同的redis實例來解決它,也許主人作爲後備?