Redis設計分佈式鎖

通過Redis高版本的原子命令
jedis.set(lockName, "", "NX", "PX", expireTime);

代碼分析

  1. redis的set命令可以攜帶複雜參數,第一個是鎖的key,第二個是value,可以存放獲取鎖的客戶端ID,通過這個校驗是否當前客戶端獲取到了鎖,第三個參數取值NX/XX,第四個參數 EX|PX,第五個就是時間
  2. NX:如果不存在就設置這個key XX:如果存在就設置這個key
  3. EX:單位爲秒,PX:單位爲毫秒
  4. 這個命令實質上就是把我們之前的setNx和expire命令合併成一個原子操作命令,不需要我們考慮set失敗或者expire失敗的情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章