Redis Exec 命令


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

语法

redis Exec 命令基本语法如下:

  1. redis 127.0.0.1:6379> Exec

可用版本

>= 1.2.0

返回值

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

实例

  1. # 事务被成功执行
  2.  
  3. redis 127.0.0.1:6379> MULTI
  4. OK
  5.  
  6. redis 127.0.0.1:6379> INCR user_id
  7. QUEUED
  8.  
  9. redis 127.0.0.1:6379> INCR user_id
  10. QUEUED
  11.  
  12. redis 127.0.0.1:6379> INCR user_id
  13. QUEUED
  14.  
  15. redis 127.0.0.1:6379> PING
  16. QUEUED
  17.  
  18. redis 127.0.0.1:6379> EXEC
  19. 1) (integer) 1
  20. 2) (integer) 2
  21. 3) (integer) 3
  22. 4) PONG
  23.  
  24.  
  25. # 监视 key ,且事务成功执行
  26.  
  27. redis 127.0.0.1:6379> WATCH lock lock_times
  28. OK
  29.  
  30. redis 127.0.0.1:6379> MULTI
  31. OK
  32.  
  33. redis 127.0.0.1:6379> SET lock "huangz"
  34. QUEUED
  35.  
  36. redis 127.0.0.1:6379> INCR lock_times
  37. QUEUED
  38.  
  39. redis 127.0.0.1:6379> EXEC
  40. 1) OK
  41. 2) (integer) 1
  42.  
  43.  
  44. # 监视 key ,且事务被打断
  45.  
  46. redis 127.0.0.1:6379> WATCH lock lock_times
  47. OK
  48.  
  49. redis 127.0.0.1:6379> MULTI
  50. OK
  51.  
  52. redis 127.0.0.1:6379> SET lock "joe" # 就在这时,另一个客户端修改了 lock_times 的值
  53. QUEUED
  54.  
  55. redis 127.0.0.1:6379> INCR lock_times
  56. QUEUED
  57.  
  58. redis 127.0.0.1:6379> EXEC # 因为 lock_times 被修改, joe 的事务执行失败
  59. (nil)