日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

009_Redis的事物

發布時間:2025/4/17 数据库 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 009_Redis的事物 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Redis事務可以一次執行多個命令, 并且帶有以下三個重要的保證:

1.1. 批量操作在發送exec命令前被放入隊列緩存。

1.2. 收到exec命令后進入事務執行, 事務中任意命令執行失敗, 其余的命令依然被執行。

1.3. 在事務執行過程, 其他客戶端提交的命令請求不會插入到事務執行命令序列中。

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

2.1. 開始事務。

2.2. 命令入隊。

2.3. 執行事務。

3. 單個Redis命令的執行是原子性的, 但Redis沒有在事務上增加任何維持原子性的機制, 所以Redis事務的執行并不是原子性的。事務可以理解為一個打包的批量執行腳本, 但批量指令并非原子化的操作, 中間某條指令的失敗不會導致前面已做指令的回滾, 也不會造成后續的指令不做。

4. watch命令

4.1. watch命令用于監視一個(或多個)key, 如果在事務執行之前這個(或這些)key被其他命令所改動, 那么事務將被打斷。

4.2. 語法: watch key [key ...]。

4.3. 總是返回OK。

5. unwatch命令

5.1. unwatch命令用于取消watch命令對所有key的監視。

5.2. 語法: unwatch。

5.3. 總是返回OK。

6. multi命令

6.1. multi命令用于標記一個事務塊的開始。

6.2. 事務塊內的多條命令會按照先后順序被放進一個隊列當中, 最后由exec命令原子性(atomic)地執行。

6.3. 語法: multi。

6.4. 總是返回OK。

7. exec命令

7.1. exec命令用于執行所有事務塊內的命令。

7.2. 語法: exec。

7.3. 假如某個key(或某些)正處于watch命令的監視之下, 且事務塊中有和這個(或這些)key相關的命令, 那么exec命令只在這個(或這些)key沒有被其他命令所改動的情況下執行并生效, 否則該事務被打斷(abort)。

7.4. 事務塊內所有命令的返回值, 按命令執行的先后順序排列。 當操作被打斷時, 返回空值nil。

7.5. 一個帶監聽的正常事物流程

7.6. 一個帶監聽的被打斷的時候流程

7.6.1.?客戶端一

7.6.2.?客戶端二

8. discard命令

8.1. discard命令用于取消事務, 放棄執行事務塊內的所有命令。

8.2. 如果正在使用watch命令監視某個(或某些)key, 那么取消所有監視, 等同于執行命令unwatch。

8.3. 語法: discard。

8.4. 總是返回OK。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的009_Redis的事物的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。