使用Redis SETNX 命令實現分佈式鎖

SETNX命令簡介  SETNX 是SET if Not eXists的簡寫。html

1、https://blog.csdn.net/lihao21/article/details/49104695  把分佈式鎖的幾個關鍵點和隱含的坑(解決死鎖),說的比較清楚。網絡

2、https://blog.csdn.net/thc1987/article/details/80355155  【轉】基於Redis Lua腳本實現的分佈式鎖(Java實現) 講的很細,提到了,設計鎖,兩個潛在的陷阱。分佈式

3、進階1 其餘比較成熟的有競爭力的實現  https://www.cnblogs.com/ironPhoenix/p/6048467.html 用Redis構建分佈式鎖-RedLock(真分佈).net


在不一樣進程須要互斥地訪問共享資源時,分佈式鎖是一種很是有用的技術手段。實現高效的分佈式鎖有三個屬性須要考慮:設計

在描述咱們的設計以前,咱們想先提出三個屬性,這三個屬性在咱們看來,是實現高效分佈式鎖的基礎。htm

一致性:互斥,無論任什麼時候候,只有一個客戶端能持有同一個鎖。
分區可容忍性:不會死鎖,最終必定會獲得鎖,就算一個持有鎖的客戶端宕掉或者發生網絡分區。
可用性:只要大多數Redis節點正常工做,客戶端應該都能獲取和釋放鎖。blog


4、進階2 其餘比較成熟的有競爭力的實現2 https://www.jianshu.com/p/cc9762a1486c  Spring boot用RedLock實現分佈式鎖進程

相關文章
相關標籤/搜索