跳至正文
-
关注
IT极限技术分享汇

ITmax

IT极限技术分享汇

ITmax

  • 首页
  • 商店
  • 我的帐户
  • 结账
  • 购物车
  • 首页
  • 商店
  • 我的帐户
  • 结账
  • 购物车
关

搜索

技术分享

使用 redis 做分布式锁时,遇到客户端挂掉,如何正确的释放锁?

作者 news
2025年2月12日 1 分钟阅读
0

使用 redis 做分布式锁时,遇到客户端挂掉,如何正确的释放锁?或者执行任务的时间超过锁的过期时间,如果续期?

使用 redis 做分布式锁时,遇到客户端挂掉,如何正确的释放锁?—— 给锁设置一个过期时间

Q:如果持有锁的客户端挂了,这个锁还加着怎么办?只能等超时自动释放吗?

是的,因为 redis server 没有主动检测长连接是否断开从而释放锁的能力

如果需要主动能力:需要使用 ZooKeeper, etcd, Consul 这些高级的专门的锁服务

Q:如果执行任务的耗时大于一开始设置锁的过期时间怎么办?

客户端使用「看门狗」实现自动续约,这个需要配合后台线程实现,非常的麻烦

https://segmentfault.com/a/1190000046107375

作者

news

关注我
其他文章
上一个

Redis 持久化原理分析和使用建议

下一个

预测技术在美团弹性伸缩场景的探索与应用

暂无评论!成为第一个。

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Copyright 2026 — IT极限技术分享汇. 备案号:浙ICP备17006560号-2