08 redis實現樂觀鎖

2021-10-24 18:42:31 字數 547 閱讀 2421

redis本身自帶有乙個watch命令,利用它也可以實現樂觀鎖,和redis的setnx 不一樣,watch命令的作用就是監聽某個key,當redis的某個事物對該key進行操作時,如果發現該key狀態發生了變更,則整個事物會失敗。

set money 100 #設定初始化的值為100

watch money #監聽這個key

multi #開啟事務

decr money

decr money

#此時啟動另外乙個客戶端 執行下面的命令 將money的值改變 decr money #此時money已經變成了99

#此時切回第乙個客戶端程序執行事務

exec

#你會發現事務並沒有被執行(事務執行失敗) 如果沒有監聽這個money那麼此時get money應該是97 而不是99

get money#此時返回的是99

#目前redis的版本當事務執行失敗後也會自動釋放鎖,如果你發現沒有釋放鎖 可以使用unwatch命令來手動的釋放鎖 然後重新新增watch 重新監視

Redis實現樂觀鎖

悲觀鎖 樂觀鎖 127.0.0.1 6379 set money 100 ok127.0.0.1 6379 set out 0 ok127.0.0.1 6379 watch money 監事 money 物件 ok127.0.0.1 6379 multi 事務正常結束,資料期間沒有發生變動,這個時候...

redis實現樂觀鎖

redis測試監控 正常執行成功!127.0.0.1 6379 set money 100 ok127.0.0.1 6379 set out 0 ok127.0.0.1 6379 watch money 監視money物件 ok127.0.0.1 6379 multi ok127.0.0.1 637...

08 Redis的引入與使用

1.redis基本介紹 2.redis的使用 3.redis主從配置 1.redis基本介紹 1.1 資料庫的發展 1.2 redis介紹與安裝 nosql資料庫 not only sql 以鍵值對方式儲存的非關係型資料庫,支援高併發,資料格式不固定等特點,主要用於快速訪問,如雙十一秒殺。redis...