Redis Exec 命令

Redis 事務

Redis Exec 命令用于執(zhí)行所有事務塊內的命令。

語法

redis Exec 命令基本語法如下:

redis 127.0.0.1:6379> Exec

可用版本

>= 1.2.0

返回值

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

實例

# 事務被成功執(zhí)行

redis 127.0.0.1:6379> MULTI
OK

redis 127.0.0.1:6379> INCR user_id
QUEUED

redis 127.0.0.1:6379> INCR user_id
QUEUED

redis 127.0.0.1:6379> INCR user_id
QUEUED

redis 127.0.0.1:6379> PING
QUEUED

redis 127.0.0.1:6379> EXEC
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) PONG


# 監(jiān)視 key ,且事務成功執(zhí)行

redis 127.0.0.1:6379> WATCH lock lock_times
OK

redis 127.0.0.1:6379> MULTI
OK

redis 127.0.0.1:6379> SET lock "huangz"
QUEUED

redis 127.0.0.1:6379> INCR lock_times
QUEUED

redis 127.0.0.1:6379> EXEC
1) OK
2) (integer) 1


# 監(jiān)視 key ,且事務被打斷

redis 127.0.0.1:6379> WATCH lock lock_times
OK

redis 127.0.0.1:6379> MULTI
OK

redis 127.0.0.1:6379> SET lock "joe"        # 就在這時,另一個客戶端修改了 lock_times 的值
QUEUED

redis 127.0.0.1:6379> INCR lock_times
QUEUED

redis 127.0.0.1:6379> EXEC                  # 因為 lock_times 被修改, joe 的事務執(zhí)行失敗
(nil)

Redis 事務