集群redis中的过期键实时通知(集群redis过期通知)
随着分布式系统的发展, 集群间Key-Value存储技术也得到了快速发展,如Redis等。Redis支持每个键设置超时,也可以让用户知道哪些键已经过期。本文使用Redis最新版本,展示如何实现实时通知过期键。
Redis现在支持发送出过期键的XEVENT通知,这可以让Redis的客户端可以实时通知过期的键。但要实现这一功能,有些指令需要被执行。首先,我们需要执行config xevent命令来开启XEVENT。 然后,我们需要将数据存储到Redis实例中,将超时设置为1000s,例如:
127.0.0.1:6379> set data 1000 ex
然后,我们可以使用xreadgroup指令让Redis Server在未读取Expired键的消息队列中的消息可见:
127.0.0.1:6379> XREADGROUP MYGRUOP ‘$’ ‘lost_keys’
该命令会接收到发送给Redis社区的消息,告知用户已存储在Redis集群的键已经失效,例如:
1) 1) 1513141290928-0
2) 1) “lost_keys”
2) 1) 1) “key”
2) “data”
最后,Redis会将发送的消息添加到未读取的消息队列中,直到被读取到,否则持久化到硬盘。
可以看出,使用Redis XEvents 通知我们过期键的功能是可行的,它可以很容易的实现通知措施,从而让我们更加熟悉每个超时的键,实现对过期键的实时通知。