当特定键的TTL到期时,Redis会发出任何类型的事件吗?
我希望在任何给定的时间点为我的应用程序添加Redis中的键数。当我生成密钥时,我有一个增量计数器,同样我希望在密钥到期时有一个减量计数器(TTL到期)。 我知道我可以通过执行' KEYS'来实现这一点,但我想知道Redis是否会生成某种事件,当密钥到期时我可以捕获它。 我将使用NodeJS来捕获事件。
谢谢, Raghu。
答案 0 :(得分:1)
不要在生产中使用KEYS
- 这是一种可能长时间运行,耗费RAM的服务拒绝操作。
是的,从v2.8.0开始,Redis确实拥有您正在寻找的东西。阅读Redis Keyspace Notifications页面,特别是有关设置x
标志和订阅相关频道的信息。
请注意,虽然这是使用Redis,PubSub消息的好方法。交付无法保证因此,如果邮件丢失,您的计数器可能会随时间推移而发生变化。在这种情况下,定期扫描数据库(使用SCAN
命令而非KEYS
)刷新它们可能会很好。