redis之紅鎖(Redlock)


關於分布式鎖,一般有三種選擇,

1、redis 

2、zk

3、DB鎖(悲觀鎖、樂觀鎖)

 

其中用的最多的應該是redis。

redis常用的方式有單節點、主從模式、哨兵模式、集群模式。

單節點在生產環境基本上不會使用,因為不能達到高可用,且連RDB或AOF備份都只能放在master上,所以基本上不會使用。

另外幾種模式都無法避免兩個問題:

1、異步數據丟失。

2、腦裂問題。

 

所以redis官方針對這種情況提出了紅鎖(Redlock)的概念。

假設有5個redis節點,這些節點之間既沒有主從,也沒有集群關系。客戶端用相同的key和隨機值在5個節點上請求鎖,請求鎖的超時時間應小於鎖自動釋放時間。當在3個(超過半數)redis上請求到鎖的時候,才算是真正獲取到了鎖。如果沒有獲取到鎖,則把部分已鎖的redis釋放掉。

 

附上官方Redlock鏈接地址:https://redis.io/topics/distlock

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM