2017-10-20 106 views
-1

是否有可能 - 在redis集羣環境中執行ZADD時 - 所有添加的密鑰最終都不會同時向所有人提供?redis ZADD <keys>在Redis集羣環境中是否一致?

我們使用(scala)redis客戶端通過ZADD添加一批密鑰。 然後在X毫秒超時後請求密鑰。 看起來1個批處理鍵有時(很少)缺失,並且僅在幾毫秒後纔可用。 我認爲,在Redis一致性模型中,要麼所有密鑰都足夠複製,因此可用,否則不顯示。因此我不明白如何可能丟失一個單一的密鑰。

集羣環境中的正常Redis/ZADD行爲?

或者這絕對不正常,這隻能通過與Redis(redis客戶端/我們自己)無關的源代碼問題來解釋?

回答

-1

Redis複製是異步的,所以如果它是一個大批量ZADD,它確實可能需要幾毫秒才能進行復制。如果要確保副本從服務器接收到事務,則應在調用ZADD後使用WAIT命令。

+0

我的問題不是,「數據需要複製並隨時可用」。但是,「將所有添加了單個ZADD命令的密鑰同時提供給羣集中的每個人」?或者是否有可能某個鍵在另一個鍵之前(對某個用戶)可見?或者,也許這是我檢索數據量(ZRANGE),這是不是集羣安全/一致的方式? – user3779543

+0

您的所有密鑰將作爲一項交易提供。你的問題很糟糕,很難理解 –