Redisson實現分散式鎖
阿新 • • 發佈:2021-12-31
自己手動實現分散式加鎖
//1、獲取一把鎖,只要鎖的名字一樣,就是同一把鎖 RLock lock = redisson.getLock("my-lock"); //2、加鎖 lock.lock();//阻塞式等待 try{ System.out.println("加鎖成功,執行業務。。。"+Thread.currentThread().getId()); Thread.sleep(3000); }catch(Exception e){ }finally{ //3、解鎖 System.out.println("釋放鎖。。。"+Thread.currentThread().getId()); lock.unlock(); }
可以看到Redisson加鎖和我們之前手動加鎖的操作一樣,需要保證KEY值唯一
Redisson即使沒有手動解鎖,Redisson也會自動刪鎖,
1、Redisson解決了鎖的自動續期,如果業務超長,執行期間會自動給鎖續上新的30s,不用擔心業務時間長,鎖自動過期被刪掉,預設加的鎖都是30s。
2、加鎖的業務只要執行完成,就不會給當前鎖續期,即使不手動解鎖,鎖預設在30s以後自動刪除,就解決了在高併發場景下的一些問題。