0

我已閱讀了redis standalone如何提供樂觀鎖定。我在redis網站上也遇到了Redlock算法,可用於分佈式鎖定。啓用羣集模式的Redis鎖

現在我不明白爲什麼我們需要在Redis中使用分佈式鎖定(啓用集羣模式)。

在啓用分佈式模式下,我們最多可以有15個分片,每個分片具有非重疊記錄。由於沒有共享數據,分佈式鎖需要什麼?

每個共享都不會樂觀鎖定嗎?其中一個原因可能是多鍵操作,但除此之外我無法想到任何事情。

我的理解是否正確?

回答

0

redis中的分佈式鎖通常用於鎖定分佈式應用程序,而不是redis中的數據。例如 - 購物應用程序具有「付款」按鈕,並且處理該事務可能需要幾秒鐘,在此期間用戶可能多次點擊該按鈕。

這些REST調用中的每一個都可能會轉到不同的Web服務器。你如何可靠地防止多賬單?當然,使用redis鎖!

但是,如果您使用單個節點/分片鎖定,則會在此確切時間窗口出現此節點失敗的風險,從而導致事務處理失敗或重複。使用分佈式鎖a-la RedLock算法,確保即使單個節點的故障也能保持鎖定狀態一致。

+0

感謝您的回覆。根據我的理解,redis是單線程的,所以即使它從不同的Web服務器獲取請求,數據庫也會先完成一個事務,然後再轉到另一個事務。如何鎖定幫助。如果我錯了,請糾正我。 – cyclops

+0

作爲一個整體鎖定應用程序,而不是自己重新啓動。 –