【发布时间】:2015-09-01 06:21:09
【问题描述】:
我在redis中给某个key设置了过期值,想在key被redis删除之前有机会运行一段代码。有可能吗,如果可以,怎么...? 谢谢
【问题讨论】:
标签: redis hook publish-subscribe
我在redis中给某个key设置了过期值,想在key被redis删除之前有机会运行一段代码。有可能吗,如果可以,怎么...? 谢谢
【问题讨论】:
标签: redis hook publish-subscribe
我的解决方案是创建一个新密钥,其名称与我想挂钩的密钥相同,只是我为它添加了一个前缀,表明它是超时使用的密钥(“TO”) - 类似于:
set key1 data1
set TO_key1 ""
expire TO_key1 20
在上面的示例中,一旦“TO_key1”到期,它就会通知我的程序,我将有机会在手动删除“key1”之前运行我的代码。
【讨论】:
这在标准操作系统 Redis 中是不可能的……但。然而,有一种方法可以在没有太多麻烦的情况下做类似的事情。如果您停止使用 Redis 的到期(至少对于那些您对“挂钩”感兴趣的键)并在代码中“手动”管理到期,您可以在到期事件之前/期间/之后做任何您想做的事情。
由于 Redis 提供开箱即用的密钥级别到期功能,因此人们通常对此感到满意。在某些情况下,例如Set 中的过期成员,唯一的方法是手动方法,但当您需要更好的控制时,该方法仍然适用于常规键。
【讨论】: