redis 設置分布式鎖要避免死鎖


1. jedis 中 setnx key value 雖然可以處理同步問題 (setnx 有返回值 1是key不存在把它設置進去,0是key已經存在了)
但是 setnx設置完后 程序的下一步 有可能掛掉 那么 這個key就永遠留在redis中了,集群中的其它機器 永遠就進入不了要執行的邏輯,
然而即使 在它的下一步 加入過期時間又有可能會出現問題,因為如果走不到下一步呢?同樣會出現該問題(就會造成死鎖)

2. 通過 jedis.set(String key, String value, String nxxx, String expx, int time) 方法可以解決上面的問題。

redis 本身是單線程所以是線程安全的,但是不代表業務就是線程安全的,所以要是用redis 的分布式鎖

 

參考: https://www.cnblogs.com/JJJ1990/p/10496850.html
    https://blog.csdn.net/KingCat666/article/details/77892176


免責聲明!

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



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