Redis公平锁顺序加锁机制.pdfVIP

  • 0
  • 0
  • 约1.16千字
  • 约 1页
  • 2026-09-23 发布于四川
  • 举报

如果客户端A释放了锁,删除了锁key,客户端B和客户端C是如何按照顺序依次加

锁的。假设客户端B在队列里面是排在后面的,假设锁被释放掉了,是客户端B先拉尝

试加锁

10:00:40,锁已经被释放了,客户端B来尝试重新加锁

10:01:04=10:00:40?不成立

estsanyLock=0,当前锁不存在;estsredisson_lock_queue:{anyLock}=0,要不然就是队列

不存在,但是现在队列是存在的;lindexredisson_lock_queue:{anyLock}0=

UUID_02:threadId_02,队列存在,排在队头的是客户端B也可以

所以上面整体条件不成立,无法加锁

ttl=10:01:04-10:00:40=24000毫秒

timeout=24000+10:00:40+5000=10:01:09

zadd指令,刷新一下客户端B在有序集合中的timeout分数,10:01:09

哪怕是锁释放掉了,其他各个客户端来尝试重新加锁也是不行的,因为此时排在队头的不是

这个客户端也不行,此时只会重新计算timeout分数刷新一下有序集合中

文档评论(0)

1亿VIP精品文档

相关文档