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實現分佈式鎖進程