是否可以在密钥过期之前挂起redis

是否可以在密钥过期之前挂起redis,redis,hook,publish-subscribe,Redis,Hook,Publish Subscribe,我在redis中为一个键设置了一个过期值,希望在redis删除该键之前有机会运行一段代码。有可能吗?如果有,如何。。。? 谢谢这在标准操作系统Redis中是不可能的。。。然而然而,有一种方法可以在没有太多麻烦的情况下做类似的事情。如果您停止使用Redis的到期(至少对于那些您感兴趣的“挂钩”键)并在代码中“手动”管理到期,您可以在到期事件之前/期间/之后执行任何您想要的操作 由于Redis提供了开箱即用的密钥级别过期,人们通常对此感到满意。在某些情况下,例如,在一个集合中过期的成员,唯一的方法是

我在redis中为一个键设置了一个过期值,希望在redis删除该键之前有机会运行一段代码。有可能吗?如果有,如何。。。?
谢谢

这在标准操作系统Redis中是不可能的。。。然而然而,有一种方法可以在没有太多麻烦的情况下做类似的事情。如果您停止使用Redis的到期(至少对于那些您感兴趣的“挂钩”键)并在代码中“手动”管理到期,您可以在到期事件之前/期间/之后执行任何您想要的操作


由于Redis提供了开箱即用的密钥级别过期,人们通常对此感到满意。在某些情况下,例如,在一个集合中过期的成员,唯一的方法是手动方法,但当您需要更精细的控制时,这种方法对于常规密钥仍然有效。

我的解决方案是创建一个新密钥,与我想要挂接的密钥同名,只是我为它添加了一个前缀,指示它是超时使用的密钥(“to”)-类似于:

set key1 data1
set TO_key1 ""
expire TO_key1 20
在上面的例子中,一旦“TO_key1”过期,它将通知我的程序,我将有机会在手动删除“key1”之前运行我的代码

  • 我发现这个链接对于创建redis的监听器非常有用: