Redis 从2.8.0版本后,推出了Keyspace Notifications特性.
Keyspace Notifications 此特性允许客户端可以以订阅/发布(Sub/Pub)模式,接收那些对数据库中的键和值有影响的操作事件。
Redis 目前的订阅与发布功能采取的是发送即忘(fire and forget)策略,如果程序需要可靠事件通知,那么目前的键空间通知可能不适合:当订阅事件的客户端断线时,它会丢失所有在断线期间分发给它的事件。并不能确保消息送达。
在redis.conf设置
image.png
开启redis-cli 等待过期键的通知
image.png
在另一个客户端设置10s过期的key
image.png
收到过期键的通知
image.png
事件类型
对于每个修改数据库的操作,键空间通知都会发送两种不同类型的事件消息:keyspace和keyevent。以 keyspace 为前缀的频道被称为键空间通知(key-space nnotification),而以 keyevent 为前缀的频道则被称为键事件通知(key-event notification).
事件是用 keyspace@DB:KeyPattern 或者 keyevent@DB:OpsType 的格式来发布消息的.
DB 表示在第几个数据库
KeyPatte