轻松掌握redis的分布式锁

在这里插入图片描述

如何合理的控制锁的有效时长,根据业务执行时间预估由于网络等原因存在不确定性。所以应该根据监控业务执行来动态的给锁续期,可以使用redisson实现的分布式锁,也是基于setnx命令实现的,加了看门狗来动态续期:

在这里插入图片描述

实例代码如下:其中如果不加锁自动释放时间参数,则会默认使用看门狗给锁自动续期。

在这里插入图片描述

redisson实现的分布式锁是可重入的,即在同一个线程里同一个key,可以获取多次锁,如下:
在这里插入图片描述

注意如下:redis主从复制中,主节点用于写操作,从节点用于读操作,当在获取锁时,主节点宕机了,从节点会自动升级为主节点,此时其他线程从新的主节点获取相同的锁,此时无法实现主从数据一致问题,redisson无法解决,可以用红锁解决,但是性能太低。如果非要保证数据的强一致性,就采用zookeeper实现的分布式锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码反应堆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值