1. 程式人生 > 其它 >Redisson實現分散式鎖

Redisson實現分散式鎖

自己手動實現分散式加鎖

//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以後自動刪除,就解決了在高併發場景下的一些問題。