Redis事務命令介紹

Redis事務命令介紹

Redis基礎命令在數據管理中扮演重要角色,Redis命令被設計爲原子的,即Redis事務使用全由或全無命題,即一組命令要麼都執行要麼都不執行,一旦執行不會受其他事物干擾。因此瞭解事務的基本命令是簡化工作量的關鍵,本文帶你瞭解如何使用Redis命令。

1. Redis的事務命令

我們先介紹下Redis與事務相關的基礎命令及功能:

  • MULTI - 事務塊的開始
  • EXEC - 執行隊列命令的信號,命令執行後返回正常狀態
  • DISCARD - 一旦執行完成清理隊列中的命令,然後返回正常狀態

MULTI, EXEC, DISCARD是按順序發生。如果事務失敗,那麼整個過程中止,因此事務作爲單序列方式執行。

2. 事務命令示例

首先創建兩個建:

127.0.0.1:6379> SET int1 15
OK
127.0.0.1:6379> SET int2 20
OK

執行MULTI命令,啓動Redis事務

127.0.0.1:6379> MULTI
OK

服務器返回ok,下面執行下面兩條命令:

127.0.0.1:6379> INCR int1
QUEUED
127.0.0.1:6379> INCRBY int2 100
QUEUED

其返回Queued表示命令執行進入隊列並沒有執行。

我們可以在新的命令行執行下面命令進行驗證:

127.0.0.1:6379> GET int1
"15"
127.0.0.1:6379> GET int2
"20"

注意:Redis使用一個稱爲隔離進程來確保服務器執行命令不會中斷。這就是爲什麼輸入的第一組命令沒有更改。

接下來使用exec命令執行事務,無需任何參數,因爲隊列已經存在。

127.0.0.1:6379> EXEC
1) (integer) 16
2) (integer) 120

注意:如果使用Redis事務收到錯誤請檢查命令的準確性。如果在Exec之前收到錯誤,驗證參數及命令名稱以及服務器內存限制。如果在Exec命令之後收到錯誤,請確認鍵值以及調用的操作。

另外如果想取消操作可使用DISCARD命令。

  • 使用MULTI命令開始
  • 執行命令incr
  • 使用discard取消命令
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> INCR int
QUEUED
127.0.0.1:6379> INCR int2
QUEUED
127.0.0.1:6379> DISCARD
OK

上面代碼顯示Redis事務被成功取消,因爲DISCARD返回OK,再次使用get命令確認結果:

127.0.0.1:6379> GET int1
"16"
127.0.0.1:6379> GET int2
"120"

3. 總結

Redis事務

Redis事務只是其衆多功能之一,在不受其他事務干擾情況下連續執行一系列命令是Redis中常用實現方式。事務序列的主要三個事務命令:MULTI、EXEC和DISCARD必不可少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章