redis的事務


redis支持簡單的事務操作,將redis事務與mysql事務對比:

 

Mysql

Redis

開啟

start transaction

multi

語句

普通sql

普通命令

失敗

rollback 回滾

discard 取消

成功

commit

exec

 

 

 

 

 

 

 

在mutil后面的語句中, 語句出錯可能有2種情況:

1: 語法就有問題,此時exec報錯, 所有語句得不到執行:

 

2: 語法本身沒錯,但適用對象有問題,Exec之后會執行正確的語句,並跳過有問題的語句.

 

第一條命令執行成功,第二條命令被跳過,一條出現錯誤其余正確的命令仍然可以執行,再換discard取消試試看:

mysql的rollback與redis的discard的區別:

mysql回滾為sql全部成功才執行,一條sql失敗則全部失敗,執行rollback后所有語句造成的影響消失

redis的discard只是結束本次事務,正確命令造成的影響仍然還在.

在事務中還有事務監聽命令:

watch key1 key2 ...  #監聽一個或多個key

unwatch   #取消所有的監聽

 Redis的事務中啟用的是樂觀鎖,只負責監測key沒有被改動.如果沒變正常執行,如果有變事務取消


免責聲明!

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



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