redis分佈式鎖相關總結.

1.爲什麼會存在分佈式鎖的概念以及分佈式鎖解決了什麼問題?

       兩個系統A和B同時使用redis,如果A系統set的key爲key1,那麼B系統可以刪除key1麼?如果可以的話顯然是不對的.此時分佈式鎖的概念就出來了,解決的問題是多個系統共用一個redis時,保證key的互斥性以及安全性.

2.分佈式鎖怎麼實現?

set(key, value, "NX", "EX", expire)方式分nx 和 xx,nx是當key不存在時才能set,xx是隻能當key存在時進行覆蓋,erpire是超時時間,保證不被死鎖.
如何實現:nx和expire 實現分佈式鎖.(分步使用setnx,再expire如果中間報錯,不能保證原子性)

3.分佈式鎖會存在什麼問題以及如何解決.

保證安全性--lua(洛)腳本.
根據傳入的key得到的value和傳入的value相同就執行del.
因爲A操作阻塞35秒,A鎖過期時間30秒,B31秒獲取鎖,A36秒刪除key.使用lua腳本.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章