Redis watch事务涉及乐观锁
发布时间
阅读量:
阅读量
概述
监控(Watch)
悲观锁:
无论在何种情况下均可能出现问题,因此在执行任何操作时都会进行加锁处理。
乐观锁:
基于一种假设,即在绝大多数情况下不会发生冲突,因此在操作过程中不主动加锁。但在更新数据时,会检查在此期间是否有其他操作对数据进行了修改。
MySQL中获取版本号:
在更新数据时,会对版本号进行比较。
在 Redis 中使用 watch 命令可以决定事务是 执行 还是 回滚。
通常情况下,可以在执行 multi 命令之前,通过 watch 命令对特定的键值对进行监视,随后使用 multi 命令启动事务模式,并将一系列用于处理数据结构的操作指令依次加入队列中。
当 Redis 接收到 exec 命令以执行事务时,系统会首先检查由 watch 命令所监视的键值对状态。
若这些键值对未发生任何变动,则 Redis 会依次执行事务队列中的所有命令,并完成事务的提交;
反之,若检测到相关键值对已被修改,则 Redis 不会对事务中的任何命令进行处理,而是直接进行事务的回滚操作。
无论最终是成功提交还是发生回滚,Redis 都会在事务处理完成后取消之前设置的 watch 命令。
全部评论 (0)
还没有任何评论哟~
