Redis事務使用方法

2022-01-10 05:12:19 字數 1290 閱讀 7890

redis事務是一組命令的集合,也是redis的最小執行單位之一。乙個事務的所有命令,要麼都執行,要麼都不執行。redis能保證事務執行期間不會有其他命令插入。

命令格式

說明discard

discard

取消事務

exec

exec

執行事務中的命令

multi

multi

標記乙個事務的開始

unwatch

unwatch

取消對key的監視

watch

watch key [key ...]

監視乙個或多個key

執行multi後,在exec或discard之前傳送的所有命令都會被redis按順序快取起來,並返回queued。執行exec後,redis取出快取的命令開始執行,並返回每一條命令的返回值。

使用watch監控的key如果發生了變化,事務將被打斷。在exec或discard執行後,watch監控自動失效,否則使用unwatch取消監控。

注意:①執行multi後不能再執行watch,否則返回錯誤「watch inside multi is not allowed」;

②如果命令有語法錯誤redis會報錯,但是執行時出現的錯誤會被redis忽略不影響後面的執行,需要自己確保不出現執行時錯誤;

1、事務正常執行

192.168.1.100:6379> multi  

ok

192.168.1.100:6379> set testkey 1

queued

192.168.1.100:6379> incr testkey

queued

192.168.1.100:6379> get testkey

queued

192.168.1.100:6379> exec

1) ok

2) (integer) 2

3) "2"

2、watch監控的key變化,事務被打斷

192.168.1.100:6379> watch testkey  

ok

192.168.1.100:6379> multi

ok

192.168.1.100:6379> set testkey 1

queued

# 此時另乙個客戶端執行 set testkey 2 改變了testkey的值

192.168.1.100:6379> exec

(nil)

Redis事務使用方法

redis事務是一組命令的集合,也是redis的最小執行單位之一。乙個事務的所有命令,要麼都執行,要麼都不執行。redis能保證事務執行期間不會有其他命令插入。命令格式 說明discard discard 取消事務 exec exec 執行事務中的命令 multi multi 標記乙個事務的開始 u...

Redis事務使用方法 watch

redis事務是一組命令的集合,也是redis的最小執行單位之一。乙個事務的所有命令,要麼都執行,要麼都不執行。redis能保證事務執行期間不會有其他命令插入。命令格式 說明discard discard 取消事務 exec exec 執行事務中的命令 multi multi 標記乙個事務的開始 u...

分布式事務使用方法

使用 ole db 開放式資料庫連線 odbc activex 資料物件 ado 或 db 庫編寫的應用程式可以使用 transact sql 分布式事務,方法是發出 transact sql 語句來啟動和停止 transact sql 分布式事務。ole db 和 odbc 還包含在應用程式程式設...