Redis 事務 與 分布式鎖


  Redis 事務實現需要用到 MULTI 和 EXEC 兩個命令,事務開始先發送MULTI命令,然后執行事務中處理的命令,最后發送EXEC命令表示事務結束。

  Redis 事務不支持回滾操作

  與事務相關的命令還有WATCH 和 UNWATCH,如果WATCH了某個鍵,那么再執行事務如果修改該鍵,那么后面的事務會被取消。UNWATCH 可以在 WATCH之后MULTI之前取消掉某個鍵的監控。

  分布式鎖

    保證分布式系統之間同步訪問一個共享資源,需要通過互斥的方式來保證一致性。

    創建鎖:

      Redis主要使用SETNX命令(set if not exists)。

      語法:SETNX key value

      功能:當且僅當key不存在,將key的值設置為value,並返回1;如果key已經存在,則不做任何操作,並返回0. 有點類似java的CAS操作。

      需要設置過期時間,防止加鎖的客戶端掛掉或超時。

    釋放鎖:

      使用WATCH命令,在執行完業務后比較key的值,如果沒有改變則del這個值。

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM