Redis 事物
阿新 • • 發佈:2018-02-23
解釋 批量 ren card ans 成功 是否 用法 基本
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事務的基礎。
Multi 和 Exec
Multi:開啟一個事務,它總是返回 OK
。執行之後, 客戶端可以繼續向服務器發送任意多條命令, 這些命令不會立即被執行, 而是被放到一個隊列中, 當 EXEC 命令被調用時, 所有隊列中的命令才會被執行。
另一方面, 通過調用 DISCARD , 客戶端可以清空事務隊列, 並放棄執行事務。
下面我們試一試這兩個命令
以年齡為例:
1.開啟事物
2.修改數據
這個時候我們再查看一次年齡,發現還是25,說明事物還沒被提交前所有的修改操作都不會生效
3.提交事物
再次查看數據,事務提交後修改操作生效了
Watch
被 WATCH 的鍵會被監視,並會發覺這些鍵是否被改動過了。 如果有至少一個被監視的鍵在 EXEC 執行之前被修改了, 那麽整個事務都會被取消, EXEC 返回空多條批量回復(null multi-bulk reply)來表示事務已經失敗。
我們再來舉個例子
還是以年齡為例:
當前age是23
1.watch:監視你,接下來age這個數據只能在我這個線程裏面操作了,其他地方動了這個數據就會報警
2.開啟事物
3.這時候新開一個窗口,修改age
4.回到原先的窗口,現在數據已經被其他線程修改了,我們看下再修改還會有效麽
5.提交事務
這次的結果不是ok,說明watch監視成功了,我們再看看當前age是多少呢
這就是watch的用法
Discard
當執行 DISCARD 命令時, 事務會被放棄, 事務隊列會被清空, 並且客戶端會從事務狀態中退出:
這個命令比較簡單,這裏就不做過多的解釋了,直接舉例子了
以上就是redis事物的基本操作
Redis 事物