redis分布式锁--》死锁问题解决策略研究
生活随笔
收集整理的這篇文章主要介紹了
redis分布式锁--》死锁问题解决策略研究
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
死鎖場景
redis分布式鎖都不可避免會遇到死鎖問題,我們先來討論一下,什么場景會發生死鎖問題。
因為redis鎖對應的key還在,如果不將redis鎖對應的key刪除,下次獲取鎖的時候還是會失敗。
redis integration原理
有童鞋會說,那還不簡單,重啟的時候直接將redis鎖對應的key刪除不就可以了嗎?當然不行,再講這個問題之前,我們先來簡單的看一下redis integratio鎖的實現原理。
首先integration在獲取鎖的時候會檢驗本地是否持有該鎖
@Overridepublic boolean tryLock(long time, TimeUnit unit) throws InterruptedException {long now = System.currentTimeMillis();// 檢查本地是否持有鎖if (!this.localLock.tryLock(time, unit)) {return false;}try {long expire = now + TimeUnit.MILLISECONDS.convert(time, unit);boolean acquired;// 獲取鎖while (!(acquired = obtainLock()) && System.currentTimeM總結
以上是生活随笔為你收集整理的redis分布式锁--》死锁问题解决策略研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机c语言中u8是什么意思,stm32
- 下一篇: uniapp聊天对话滚动到底部