缓存-分布式锁-Redisson-lock锁测试
生活随笔
收集整理的這篇文章主要介紹了
缓存-分布式锁-Redisson-lock锁测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
可重入鎖
@ResponseBody@GetMapping("/hello")public String hello() {//1、獲取一把鎖,只要鎖的名字一樣,就是同一把鎖RLock lock = redisson.getLock(" my-lock ");//2、加鎖lock.lock();//阻塞式等待。默認加的鎖都是30s時間。//1)、鎖的自動續期,如果業務超長,運行期間自動給鎖續上新的30s。不用擔心業務時間長,鎖自動過期被用特//2)、加鎖的業務只要運行完成,就不會給當前鎖續期,即使不手動解鎖,鎖默認在30s以后自動刪除。try{System.out.println("加鎖成功,執行業務..." + Thread.currentThread().getId());Thread.sleep(30000);} catch (Exception e) {} finally { //3、解鎖將設解鎖代碼沒有運行,redisson會不會出現死鎖System.out.println("釋放鎖..." + Thread.currentThread().getId());lock.unlock();}return "hello";}基于Redis的Redisson分布式可重入鎖RLock?Java對象實現了java.util.concurrent.locks.Lock接口
大家都知道,如果負責儲存這個分布式鎖的Redisson節點宕機以后,而且這個鎖正好處于鎖住的狀態時,這個鎖會出現鎖死的狀態。為了避免這種情況的發生,Redisson內部提供了一個監控鎖的看門狗,它的作用是在Redisson實例被關閉前,不斷的延長鎖的有效期。默認情況下,看門狗的檢查鎖的超時時間是30秒鐘,也可以通過修改Config.lockWatchdogTimeout來另行指定。
?
總結
以上是生活随笔為你收集整理的缓存-分布式锁-Redisson-lock锁测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缓存-分布式锁-Redisson简介整合
- 下一篇: 缓存-分布式锁-Redisson-读写锁