Redisson分布式锁 原理&源码 分析

# 基于setnx实现的分布式锁存在的问题:

# 为了解决上面的问题,可以用Redisson

# Redisson入门

# Redisson可重入锁原理

获取锁的Lua脚本:

释放锁的Lua脚本:

# 锁重试原理分析

tryLock()底层代码分析

time :剩余的等待重试时间 ttl:现被持有的锁的剩余有效时间

计算尝试获取锁所消耗的时间,然后再计算出等待获取锁的剩余时间time,

如果time<=0,则不再重试了直接返回获取锁失败,

如果time>0,则通过subscribe去订阅别人释放锁的通知信号,如果在剩余的等待重试时间time里还没有等到通知信号,则取消订阅;

如果在剩余的等待重试时间里订阅到释放锁的信号了,就再重新计算一次剩余的等待重试时间time,如果time>0,则进入while(true)循环中尝试获得锁。

释放锁的lua脚本中的发布消息通知

# 看门狗更新锁有效时间 源码分析

# 释放锁源码

# 总结

相关推荐
程序员黎剑3 小时前
Redis缓存击穿:热点Key过期打崩数据库的3种解决方案
数据库·redis·缓存
xixiaoyunya4 小时前
Redis 缓存一致性方案深度对比:从理论到工程落地
redis·spring·缓存
职场的momo6 小时前
16384个槽怎么搬?解析Redis集群迁移与脑裂防御
数据库·redis·缓存
vivo互联网技术6 小时前
四年、十次告警、数十个技术决策:一个海外电商平台的高并发治理实录
服务器·redis·高并发·热key·性能治理·缓存治理
Meta396 小时前
Java八股文之Spring Boot中解决Redis和MySQL的数据一致性问题
java·spring boot·redis
cfm_29146 小时前
Redis大Key与热Key分析
redis·缓存
还是大剑师兰特10 小时前
Windows Redis 完整下载‑安装‑配置教程
windows·redis
接着奏乐接着舞。1 天前
【2026】73道Redis 常见面试题与参考答案
数据库·redis·后端·缓存