Redis 事务

事务阶段

  • 标记
  • 入队
  • 执行

常用命令

下表列出了 redis 事务的相关命令:

序号 命令及描述
1 DISCARD 取消事务,放弃执行事务块内的所有命令。
2 EXEC 执行所有事务块内的命令。
3 MULTI 标记一个事务块的开始。
4 UNWATCH 取消 WATCH 命令对所有 key 的监视。
5 WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

事务的几种情况

  • 正常情况
  • 放弃事务:discard
  • 全部失败: 有一些错误的命令(Redis里面根本没有的命令)。事务全部放弃。
  • 错误命令失败:错误的使用一些命令(字符串加一),当前命令失败,事务中的其他命令成功。
  • 使用Watch:见下一节

Watch

乐观锁:不加锁,使用版本号机制,当前修改必须大于版本号才能修改
Redis 锁的机制类似于乐观锁。在进行watch监控时,对watch的key进行加锁,当其他客户端或线程对其修改后,当前事务会返回失败。执行了exec,之前加的watch监控都被取消。

你可能感兴趣的:(Redis 事务)