Redis和ZK實現分佈式鎖

一、Redis實現分佈式鎖

    1、使用Redis分佈式鎖的原因:Redis性能好;命令支持比較好,實現方便。
    2、實現方式:直接用int setnx寫key,如果成功了,說明獲取鎖成功,否則拿鎖失敗。拿鎖成功之後對key設置超時時間,操作完成時可通過del key釋放鎖。

二、Zookeeper實現分佈式鎖

    1、通過創建zk的znode節點進行控制。檢查zookeeper集羣下的這個節點是否存在存在證明已經有鎖了,不存在就沒有。

 

    Redis分佈式鎖:必須使用者自己間隔時間輪詢去嘗試加鎖,當鎖被釋放後,存在多線程去爭搶鎖,並且可能每次間隔時間去嘗試鎖的時候,都不成功,對性能浪費很大。
    Zookeeper分佈鎖:首先創建加鎖標誌文件,如果需要等待其他鎖,則添加監聽後等待通知或者超時,當有鎖釋放,無須爭搶,按照節點順序,依次通知使用者。

 

redis鎖效率更高?

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