樂觀鎖的使用 redis

2021-10-09 20:12:31 字數 775 閱讀 6914

悲觀鎖:什麼時候都出問題,無論做什麼都加鎖

樂觀鎖:什麼時候都不會出現問題,所以不會上鎖,更新資料的時候進行判斷,在此期間是否有人對資料進行了改變

獲取version,更新的時候比較version,

監控==watch。事務正常結束,資料期間沒有發生改變,這個時候就正常執行成功,監視失敗,要放棄監視unwatch==,再重新監視

127.0.0.1:6379>

set money 1000

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:6379> decrby money 100

queued

127.0.0.1:6379> incrby out 100

queued

127.0.0.1:6379>

exec

1)(integer) 900

2)(integer) 100

127.0.0.1:6379> mget money out

1)"900"

2)"100"

使用Redis實現樂觀鎖

事務是乙個單獨的隔離操作 事務中的所有命令都會序列化 按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。事務是乙個原子操作 事務中的命令要麼全部被執行,要麼全部都不執行。這點和mysql的事務不太一樣,在mysql事務開啟後,當操作中存在異常,則會導致事務回滾,不會出現資料異...

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...