Redisson 实现分布式锁
回答
-
在使用 SETNX 实现的分布式锁中,因为,存在锁无法续期,导致并发冲突的问题。所以,在真实的生产环境中用的并不是很多。
-
实际工作中,用的比较多的是基于 Redisson 实现分布式锁。
Redisson 是一个基于 Redis 的 Java 客户端,它提供了丰富的功能,包括分布式锁的支持。
关于 Redisson 实现分布式锁可以参考:
-
为了避免锁超时,Redisson 中引入了看门狗的机制。
他可以帮助我们在 Redisson 实例被关闭前,不断的延长锁的有效期。
默认情况下,看门狗的检查锁的超时时间是30秒钟。
也可以通过修改
Config.lockWatchdogTimeout
来另行指定。
如何实现一个可重入的分布式锁?
- 引入依赖
- 定义一个 Redisson 客户端
- 加锁/解锁 操作
- 设置超时时间
- 公平锁
- 联锁
- 读写锁