Redis --- Redis 乐观锁操作演示

    关于锁,相信各位在很多场景都遇到过,数据库里面的锁,Java 里面的锁等等。这次,小编和大家分享一下 Redis 的乐观锁,用最通俗易懂的方式让各位了解到这种锁,怎么出现,怎么用的。乐观锁是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。
    下面小编进行具体演示:

1,登录Redis。下面的指令均在 Docker 里面部署的 Redis 进行。如果各位的环境还没部署好,可以参考小编之前的文章:Ubuntu 部署 Docker 完整步骤Docker 部署 Redis 完整步骤

2,定义一个 key,开启两个redis客户端,监控这个key。

#####################(窗口1)
127.0.0.1:6379> keys *    #查看已经存在的key, balance值是100,没有的话可以创建一下
1) "balance"
127.0.0.1:6379> watch balance  #监控key
OK
#####################(窗口2)
127.0.0.1:6379> watch balance
OK

3,开启事务

######################(窗口1)
127.0.0.1:6379> multi       #开启事务
OK
127.0.0.1:6379> incrby balance 10    #设置key 增长10,进入执行队列
QUEUED
######################(窗口2)
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incrby balance 30   #设置key 增长30,进入执行队列
QUEUED

4,执行

######################(窗口1)
127.0.0.1:6379> exec   #执行
1) (integer) 110
######################(窗口2)
127.0.0.1:6379> exec
(nil)   ##无法执行,此时即为乐观锁场景
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮克克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值