Redisson分布式锁
1 | <T> RFuture<T> tryLockInnerAsync(long waitTime, long leaseTime, TimeUnit unit, long threadId, RedisStrictCommand<T> command) { |
此处的LockName
UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。
1 | protected String getLockName(long threadId) { |
加锁流程图
Redisson Lock的效果
watchdog 锁自动续期(默认每次续30s)
1 | private void renewExpiration() { |
总结
Redisson分布式锁安全的原因:
首先锁的lockName是根据uuid+当前线程id组合生成,不可能存在重复
同时还有一个watch dog自动续期的机制
- Post title:Redisson分布式锁
- Post author:大黄
- Create time:2022-08-19 14:05:43
- Post link:https://huangbangjing.cn/2022/08/19/Redisson分布式锁/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.