从过期的密钥中检索值

问题描述 投票:0回答:1

我有一个用例,我要进行汇总,直到TTL在Redis的键/值上达到0为止。据我在文档中所知,检索或后台作业会触发所有已过期的密钥立即被删除。

无论如何,我是否可以“终止”该删除操作并在到期时检索其值?或类似的效果?

我的最后一个问题包含我的用例的某些上下文:Redis - any way to trigger an event when a value is no longer being actively written to?

redis
1个回答
1
投票

我相信我找到了我问题的答案。每行将有一个对应的行,约定为expiry:{key}

uniqueEventHash: [value1, value2, value3] // no expiry
expiry:uniqueEventHash: {no value} // set TTL to 60

[现在,每当value的新uniqueEventHash到达时,我都会做两件事。我将其附加到带有uniqueEventHashappend行上,然后我还随后将expiry:uniqueEventHash上的TTL重置为60。

uniqueEventHash的事件停止到达时,删除第二个expiry:expiry:uniqueEventHash,并向用户发送关于EXPIRY事件的通知。消息中已过期的密钥,在这种情况下为expiry:uniqueEventHash

然后我可以执行以下操作:

// pseudo code
onExpiryEvent(message):     

    [type, key] = eventMessage.split(':');
    aggregatedValue = await getByKey(key);
    del(key);
© www.soinside.com 2019 - 2024. All rights reserved.