分步式锁理解

分布式锁是一种确保多节点共享资源有序访问的机制。本文介绍了Redisson的基本原理,包括使用Redis Hash存储结构和看门狗机制。同时,对比分析了基于MySQL、Redis、Zookeeper和Etcd的分布式锁实现,探讨了它们的性能、可靠性和实现复杂度。
摘要由CSDN通过智能技术生成

分步式锁 是一种跨进程,跨jvm的互斥锁,它保证多个机器节点对共享资源访问的的顺序性

redission基本原理

RLock底层使用Redis的Hash作为存储结构,其中Hash的key用于存储锁的名字,Hash的filed用于存储客户端id,filed对应的value是线程重入次数。

Redisson中客户端1一旦加锁成功,就会启动一个watch dog看门狗,他是一个后台线程,会每隔10秒检查一下,如果客户端1还持有锁key,那么就会不断的延长锁key的生存时间。

市面上的分布式锁有4种:

1,基于mysql的锁实现  常见的悲观锁for update,以及它是基于 CAS 思想实现的用版本号加锁

2,基于redis锁实现

   有一下几种实现方式: 

   1,setnx+过期时间   ,突然宕机了。这种情况锁将会无法主动释放。

    2,用lua脚本实现的Redission  ,底层用redis的hash数据结构,有一个机制是一旦l加锁成                  功, 就会启动一个watch dog看门狗,每隔10秒检查一下,会对锁进行续期。

   和Zookeeper相比较,Redisson基于Redis性能更高,适合对性能要求高的场景。

缺点:Redisson没有办法解决节点宕机问题,不能达到ZK的一致性;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java大猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值