我有一个用例,我一直进行汇总,直到TTL在Redis的键/值上达到0为止。据我在文档中所知,检索或后台作业会触发所有过期的密钥,并立即将其删除。
无论如何,我是否可以“终止”该删除操作并在到期时检索其值?或类似的效果?
我的最后一个问题包含我的用例的上下文:Redis - any way to trigger an event when a value is no longer being actively written to?
答案 0 :(得分:1)
我相信我找到了我问题的答案。每行都有对应的行,约定为expiry:{key}
。
uniqueEventHash: [value1, value2, value3] // no expiry
expiry:uniqueEventHash: {no value} // set TTL to 60
现在,每当value
的新uniqueEventHash
到达时,我都会做两件事。我将其附加到uniqueEventHash
的{{1}}行上,然后我还将append
上的TTL重置为60。
当该expiry:uniqueEventHash
的事件停止到达时,第二个uniqueEventHash
被删除,并且expiry:expiry:uniqueEventHash
事件的通知被发送给订户。消息中的密钥已过期,在这种情况下为EXPIRY
。
然后我可以执行以下操作:
expiry:uniqueEventHash