一、redis事務能夠依次執行多個命令,而且帶有如下三個重要的保證:redis
- 批量操做在發送exec命令前被放入隊列緩存。
- 收到exec命令後進入事務執行,事務中任意命令執行失敗,其他的命令依然被執行。
- 在事務執行過程,其餘客戶端提交的命令請求不會插入到事務執行命令序列中。
二、一個事務從開始到執行會經歷一下三個階段:緩存
- 開始事務
- 命令入隊
- 執行事務
三、事務處理相關命令spa
- 命令名稱:multi
- 語法:multi
- 功能:
- 返回值:
- 命令名稱:exec
- 語法:exec
- 功能:
- 返回值:
- 事務塊內全部命令的返回值,按命令執行的前後順序排列。
- 當操做被打斷時,返回空值nil。
- 命令名稱:discard
- 語法:discard
- 功能:
- 返回值:
- 命令名稱:watch
- 語法:watch key [key……]
- 功能:
- 監視一個(或多個)key,若是在事務執行以前這個(或這些)key被其餘命令所改動,那麼事務將被打斷。
- 返回值:
- 命令名稱:unwatch
- 語法:unwatch
- 功能:
- 取消watch命令對全部key的監視。
- 若是在執行watch命令以後,exec命令或discard命令先被執行了的話,那麼久不須要再執行unwatch了
- 返回值:老是返回OK