当特定密钥的TTL过期时,Redis是否会发出任何类型的事件?
我希望在任何给定的时间点为我的应用程序在Redis中添加键的数量。生成密钥时,我有一个递增计数器,同样,当密钥过期(TTL过期)时,我也想有一个递减计数器。
我知道我可以通过执行“KEYS”来实现这一点,但是我想知道Redis是否生成某种事件,可以在密钥过期时捕获。
我将使用NodeJS捕获事件。
谢谢,
拉古
最佳答案
不要在生产中使用KEYS
-这是一个可能长时间运行,消耗RAM且拒绝服务的操作。
是的,从v2.8.0开始,Redis确实具有您所需要的。阅读Redis Keyspace Notifications页面,特别是有关设置x
标志和订阅相关 channel 的信息。
请注意,虽然这是使用Redis的好方法,但PubSub邮件的传递方式为,不能保证为,因此,如果丢失邮件,计数器可能会随着时间推移而变化。在这种情况下,最好定期扫描数据库(使用SCAN
命令而不是KEYS
)以刷新数据库。
关于node.js - TTL过期时发生的事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29833948/