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