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监控都被取消。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容