exec 命令

Exec 命令用于执行所有事务块内的命令。

语法

Exec

返回值

事务块内所有命令的返回值,按命令执行的先后顺序排列。 当操作被打断时,返回空值 nil 。

实例

# 事务被成功执行
 

redis> MULTI
OK
 

redis> INCR user_id
QUEUED
 

redis> INCR user_id
QUEUED
 

redis> INCR user_id
QUEUED
 

redis> PING
QUEUED
 

redis> EXEC
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) PONG
 
 
# 监视 key ,且事务成功执行
 

redis> WATCH lock lock_times
OK
 

redis> MULTI
OK
 

redis> SET lock "huangz"
QUEUED
 

redis> INCR lock_times
QUEUED
 

redis> EXEC
1) OK
2) (integer) 1
 
 
# 监视 key ,且事务被打断
 

redis> WATCH lock lock_times
OK
 

redis> MULTI
OK
 

redis> SET lock "joe"        # 就在这时,另一个客户端修改了 lock_times 的值
QUEUED
 

redis> INCR lock_times
QUEUED
 

redis> EXEC                  # 因为 lock_times 被修改, joe 的事务执行失败
(nil)

上篇: multi 命令

下篇: watch 命令