Redis 事务

Redis事务允许一组命令在单一步骤中执行。事务有两个属性,说明如下:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

  • Redis事务是原子的。原子意味着要么所有的命令都执行,要么都不执行;

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务
  • 命令入队
  • 执行事务
    1. redis 127.0.0.1:6379> MULTI
    2. OK
    3. List of commands here
    4. redis 127.0.0.1:6379> EXEC

案例

银行转账,邓超给宝强转账1万元:

  1. 127.0.0.1:6379> set dengchao 60000
  2. OK
  3. 127.0.0.1:6379> set wangbaoqiang 200
  4. OK
  5. 127.0.0.1:6379> multi
  6. OK
  7. 127.0.0.1:6379> INCRBY dengchao -10000
  8. QUEUED
  9. 127.0.0.1:6379> INCRBY wangbaoqiang 10000
  10. QUEUED
  11. 127.0.0.1:6379> EXEC
  12. 1) (integer) 50000
  13. 2) (integer) 10200
  14. 127.0.0.1:6379>

原文: https://piaosanlang.gitbooks.io/redis/content/05_transaction.html