Redis键过期时自动更改值

0 投票
1 回答
1262 浏览
提问于 2025-04-18 09:46

我正在使用Redis的hset命令:

hset(name, k, (level, info, t))

我想要在(name, k)过期后,自动将level设置为-1。

有没有什么命令可以做到,最好是用Python来实现。

1 个回答

1

这个事情不能可靠地做到,因为过期并不会在某个特定的时刻触发某个动作,而是在之后的某个时间,比如在访问这个键的时候,或者在自动清理的过程中。

实际上,对于少量的键来说,这不会造成太长的延迟,你可以订阅一个事件,来报告过期的情况。

关于如何订阅过期事件,可以参考 相关的回答

编辑:

如果你想修改这个值,你需要运行一个客户端,这个客户端需要订阅这个事件,并在事件发生时对值进行修改。

但是由于这个事件发生的时机(可能是因为尝试使用那个本该刚过期的键),这个监听的代码可能会来得有点晚。这要看你实际的场景。

撰写回答