首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接关闭时过期密钥

连接关闭时过期密钥
EN

Stack Overflow用户
提问于 2013-06-13 13:19:39
回答 1查看 72关注 0票数 0

我正在尝试使用redis获取分布式锁。在谷歌搜索之后,我找到了一个解决方案https://github.com/jeffomatic/redis-exp-lock-js/blob/master/js/lib/redis_lua.js

但是这个解决方案的问题是:如果应用程序崩溃。在超时之前,没有办法恢复锁。我想要的是,在连接关闭时自动过期密钥。在redis中有什么命令/过期设置吗?用于在连接关闭时使密钥过期。

EN

回答 1

Stack Overflow用户

发布于 2013-06-14 22:32:44

不,redis不能为你做到这一点(你只能在客户端做到这一点)

要缓解这个死锁问题,您可以存储上一次获取的时间戳,并使用该时间戳来确定锁是否仍然有效或是否为死锁。

如果存储在锁中的值设置得太早,获取锁的客户端将忽略它(例如,current_time - lock_time > timeout)。

注意:这需要同步客户端的时钟。

编辑:

如果LUA是您的一个选项,那么您不需要客户端具有同步时钟

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17079723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档