【发布时间】:2022-01-02 09:21:59
【问题描述】:
我目前正在处理 Redis 过期事件
我的目标:在 Redis 中的数据已经过期后,在下一个流程中获取 Value、Field 做某事
所以我找到了 Redis Keyspace 通知功能 允许客户端订阅 Redis 中的频道以接收影响重置中数据的事件,例如过期
所以我有一些示例代码:https://github.com/toygame/nodejs-redis-keyspace-notifications
subscriber.subscribe("__keyevent@0__:expired")
subscriber.on('message', async(channel, message) => {
// do somethings
console.log(message);
})
Result : Key0
这项工作找到了,但我得到的结果只是我设置到 redis 中并过期的 Key
但它发现的唯一事件可能是我可以作为结果而不是值,我期望的字段
他们无论如何要获得那些价值和领域?
仅供参考。文档https://redis.io/topics/notifications
更新 根据这个https://stackoverflow.com/a/42556450/11349357
键空间通知不报告值,仅键的名称和/或执行的命令包含在发布的消息中。这样做的主要基础原因是 Redis 值可能变得非常大。
如果你真的真的需要这种行为,那其实很简单。由于键空间通知使用 Pub/Sub 消息,因此您可以在每次相关操作后自己调用 PUBLISH,并使用您感兴趣的信息。
看起来我不能使用这个 Redis 密钥空间,但我必须自己发布它
【问题讨论】:
标签: redis publish-subscribe subscribe ioredis