文章目錄
-
- multi 、 exec 、 discard 、watch
- Redis使用方法
- Redis不支援復原
Redis事務:是一些列redis指令的集合,在一次單獨的步驟中執行一組指令,Redis會将一個事務中的所有指令序列化,然後按順序執行。
multi 、 exec 、 discard 、watch
-
MULTI
multi用于标記一個事務塊的開始,Redis會将後續的指令逐個放入隊列中,然後才能使用EXEC指令原子化地執行這個指令序列。
-
EXEC
exec執行所有事務塊内的指令, 在一個事務中執行所有先前放入隊列的指令,然後恢複正常的連接配接狀态。
-
DISCARD
discard清除所有先前在一個事務中放入隊列的指令,然後恢複正常的連接配接狀态。
如果使用了WATCH指令,那麼DISCARD指令就會将目前連接配接監控的所有鍵取消監控。
-
WATCH
watch當某個事務需要按條件執行時,就要使用這個指令将給定的鍵設定為受監控的。
WATCH key [key …]
-
UNWATCH
unwatch清除所有先前為一個事務監控的鍵。
如果調用了EXEC或DISCARD指令,那麼就不需要手動調用UNWATCH指令。
Redis使用方法
使用MULTI指令便可以進入一個Redis事務。這個指令的傳回值總是OK。此時,使用者可以發出多個Redis指令。Redis會将這些指令放入隊列,而不是執行這些指令。一旦調用EXEC指令,那麼Redis就會執行事務中的所有指令。相反,調用DISCARD指令将會清除事務隊列,然後退出事務。
EXEC指令的傳回值是一個數組,包含事務中每個指令的執行結果,且響應的順序和指令發出時的順序一樣。
- 事務中的所有指令都是序列化且都是按順序執行的。
- 所有的指令要麼都被一起處理,要麼全都沒有被處理,是以Redis事務是原子的。
Redis不支援復原
Redis指令在事務中可能會執行失敗,但是Redis事務不會復原,而是繼續會執行餘下的指令。
— The end —