【发布时间】:2016-12-02 23:25:30
【问题描述】:
我有一个带有 TTL 键的数据库。
我还有一个脚本,它会定期运行以将所有键的 TTL 重置为其默认值(此处为 20 秒):
local matches = redis.call('KEYS', '*') for _,key in ipairs(matches) do redis.call('SETEX', key, 20, -1) end
我的问题 - 在上述脚本运行时,密钥是否可能会过期。
我知道 Lua 脚本是原子的(http://redis.io/commands/EVAL,“脚本的原子性”),但我不确定这也适用于过期事件。
谢谢
【问题讨论】:
-
有趣的问题。我认为这归结为到期过程是否使用用于服务请求的同一线程。我的猜测是确实如此。
标签: lua redis stackexchange.redis