redis事务乐观锁

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

 

 

 

0、准备知识

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

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

 

启动两个客户端,redis-cli

 

一、客户端1

 

 

二、客户端2

 

 

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

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

 

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

 

posted @ 2020-09-13 22:08  gabin  阅读(111)  评论(0编辑  收藏  举报