Redis 事務 詳解

2021-08-02 16:40:25 字數 1065 閱讀 7152

redis 事務可以一次執行多個命令, 並且帶有以下兩個重要的保證 :

1> 事務是乙個單獨的隔離操作 : 事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷

2> 事務是乙個原子操作 : 事務中的命令要麼全部被執行,要麼全部都不執行

乙個事務從開始到執行會經歷以下三個階段 :

1> 開始事務

2> 命令入隊

3> 執行事務

例項 :

以下是乙個事務的例子, 它先以 multi 開始乙個事務, 然後將多個命令入隊到事務中, 最後由 exec 命令觸發事務, 一併執行事務中的所有命令 :

redis 127.0.0.1:6379> multi

okredis 127.0.0.1:6379> set book-name "mastering c++ in 21 days"

queued

redis 127.0.0.1:6379> get book-name

queued

redis 127.0.0.1:6379> sadd tag "c++" "programming" "mastering series"

queued

redis 127.0.0.1:6379> smembers tag

queued

redis 127.0.0.1:6379> exec

1) ok

2) "mastering c++ in 21 days"

3) (integer) 3

4) 1) "mastering series"

2) "c++"

3) "programming"

redis 事務命令

discard : 取消事務,放棄執行事務塊內的所有命令

exec : 執行所有事務塊內的命令

multi : 標記乙個事務塊的開始

unwatch : 取消 watch 命令對所有 key 的監視

watch key [key ...] : 監視乙個(或多個) key ,如果在事務執行之前這個(或這些) key 被其它命令所改動,那麼事務將被打斷

Redis 詳解事務

什麼是事務?簡單點說事務就是一次批處理,給定指令碼一下性執行完畢 什麼是事務 可以一次執行多個命令,本質是一組命令的集合。乙個事務中的所有命令都會序列化,按順序地序列化執行而不會被其它命令插入,就像排隊一樣,不許加塞。就是指排好隊,按序一次執行一大堆命令 作用乙個佇列中,一次性 順序性 排他性的執行...

redis事務常用操作詳解

事務 multi exec d 和 watch 是 redis 事務相關的命令。事務可以一次執行多個命令,並且帶有以下兩個重要的保證 事務是乙個單獨的隔離操作 事務中的所有命令都會序列化 按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。事務是乙個原子操作 事務中的命令要麼全...

redis事務詳解 避免踏坑

redis是支援一定事務能力的nosql,在redis中使用事務,通常的命令組合是watch multi exe,也就是要在乙個redis連線中執行多個命令,這是我們可以考慮使用sessioncallback介面來達到這個目的。如上redis事務執行流程,首先watch監控redis的一些鍵 mul...