【问题标题】:Event when TTL is expiredTTL 过期事件
【发布时间】:2015-04-23 20:44:10
【问题描述】:

当特定键的 TTL 过期时,Redis 是否会发出任何类型的事件?

我希望在任何给定时间点为我的应用程序在 Redis 中添加键的计数。我在生成密钥时有一个递增计数器,同样我希望在密钥过期(TTL 过期)时有一个递减计数器。 我知道我可以通过执行“KEYS”来实现这一点,但我想知道 Redis 是否会生成某种事件,我可以在密钥过期时捕获这些事件。 我将使用 NodeJS 来捕获事件。

谢谢, 拉古。

【问题讨论】:

标签: node.js redis


【解决方案1】:

不要在生产环境中使用KEYS - 它可能会长时间运行、消耗 RAM、拒绝服务。

是的,从 v2.8.0 开始,Redis 确实拥有您想要的东西。阅读Redis Keyspace Notifications 页面,特别是关于设置x 标志和订阅相关频道的信息。

请注意,虽然这是使用 Redis 的好方法,但 PubSub 消息的传递不能保证,因此如果消息丢失,您的计数器可能会随着时间而变化。在这种情况下,最好定期扫描您的数据库(使用SCAN 命令,不是KEYS)以刷新它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2018-12-06
    • 2015-02-07
    • 2014-05-13
    • 2016-12-07
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多