如果使用鎖是出於效率最佳化的目的且可以容忍一定程度的不正確性,我建議堅持使用簡單的 Redis單節點鎖定演算法[22](條件設定如果不存在以獲得鎖, atomic delete-if-value-matches 以釋放鎖),並在你的程式碼中
return nil缺陷和常規redis分散式鎖方案一樣,RedLock同樣會受GC的影響,存在多個程序同時持有分散式鎖的互斥性問題
eval(unlock_script,1,lock_name,identifier)到這裡Redis單節點的鎖實現已經基本介紹完了,主要有三點使用SETNX實現排他性鎖使用超時限制特性來避免死鎖釋放鎖的時候需要進行檢查來避免誤釋放別的程序的