天天看點

輕松掌握redis的分布式鎖

作者:輕松入門網
輕松掌握redis的分布式鎖

如何合理的控制鎖的有效時長,根據業務執行時間預估由于網絡等原因存在不确定性。是以應該根據監控業務執行來動态的給鎖續期,可以使用redisson實作的分布式鎖,也是基于setnx指令實作的,加了看門狗來動态續期:

輕松掌握redis的分布式鎖

執行個體代碼如下:其中如果不加鎖自動釋放時間參數,則會預設使用看門狗給鎖自動續期。

輕松掌握redis的分布式鎖

redisson實作的分布式鎖是可重入的,即在同一個線程裡同一個key,可以擷取多次鎖,如下:

輕松掌握redis的分布式鎖

注意如下:redis主從複制中,主節點用于寫操作,從節點用于讀操作,當在擷取鎖時,主節點當機了,從節點會自動更新為主節點,此時其他線程從新的主節點擷取相同的鎖,此時無法實作主從資料一緻問題,redisson無法解決,可以用紅鎖解決,但是性能太低。如果非要保證資料的強一緻性,就采用zookeeper實作的分布式鎖。

繼續閱讀