redis事务乐观锁

先了解下事务的相关命令(redis-cli支持tab自动补全):

0、准备知识

  • MULTI:事务开启
  • EXEC:事务提交
  • WATCH:监控变量,如果变量改变,则不执行事务操作
  • DISCARD: 放弃事务中的命令,与EXEC排他

ps:MULTI和EXEC两者之间的操作将为原子性操作

启动两个客户端,redis-cli

一、客户端1

二、客户端2

ps:这边exec是事务1先执行的,但是其他语句都是接近同时执行的(虽然说法不太严谨,但是可以认为是同一时间执行的)

从结果上看:t1执行成功,t2执行失败,乐观锁生效

如果仅仅使用事务,则会产生数据覆盖的情况。

原文地址:https://www.cnblogs.com/gabin/p/13663699.html