Redis Exec 命令

Redis 事務(wù)

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

語法

redis Exec 命令基本語法如下:

redis 127.0.0.1:6379> Exec

可用版本

>= 1.2.0

返回值

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

實(shí)例

# 事務(wù)被成功執(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 ,且事務(wù)成功執(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 ,且事務(wù)被打斷

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"        # 就在這時(shí),另一個(gè)客戶端修改了 lock_times 的值
QUEUED

redis 127.0.0.1:6379> INCR lock_times
QUEUED

redis 127.0.0.1:6379> EXEC                  # 因?yàn)?lock_times 被修改, joe 的事務(wù)執(zhí)行失敗
(nil)

Redis 事務(wù)