redisson分布式鎖原理講解?
1、加鎖機制
線程去獲取鎖,獲取成功: 執行lua腳本,保存數據到redis數據庫。
線程去獲取鎖,獲取失敗: 一直通過while循環嘗試獲取鎖,獲取成功后,執行lua腳本,保存數據到redis數據庫。
2、watch dog自動延期機制
這個比較難理解,找了些許資料感覺也并沒有解釋的很清楚。這里我自己的理解就是:
在一個分布式環境下,假如一個線程獲得鎖后,突然服務器宕機了,那么這個時候在一定時間后這個鎖會自動釋放,你也可以設置鎖的有效時間(不設置默認30秒),這樣的目的主要是防止死鎖的發生。
3、為啥要用lua腳本呢?
這個不用多說,主要是如果你的業務邏輯復雜的話,通過封裝在lua腳本中發送給redis,而且redis是單線程的,這樣就保證這段復雜業務邏輯執行的原子性 。
上一篇C4D相比3D優勢在哪里
下一篇obs直播有什么特點