键空间通知使得客户端能够经过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件。如Redis数据库中键的过时事件也是经过订阅功能实现。本文主要基于Azure PaaS Redis演示相关功能的具体实现。html
由于开启键空间通知功能须要消耗一些 CPU , 因此在默认配置下, 该功能处于关闭状态。由于Azure Redis屏蔽了部分指令,不能直接使用cli指令设置notify-keyspace-events参数,目前能够经过Azure Portal管理门户直接设置。注意: 基本版的Redis还不支持设置该参数。redis
使用Azure Console发布消息
数据库
使用Cli工具订阅消息(注意使用cli链接Azure redis须要打开6379端口)
工具
设置带有过时时间的key
spa
订阅过时key事件
.net
Redis 使用如下两种方式删除过时的键:htm
一、当一个键被访问时,程序会对这个键进行检查,若是键已通过期,那么该键将被删除。blog
二、底层系统会在后台渐进地查找并删除那些过时的键,从而处理那些已通过期、可是不会被访问到的键。事件
当过时键被以上两个程序的任意一个发现、 而且将键从数据库中删除时, Redis 会产生一个 expired 通知。get
Redis 并不保证生存时间(TTL)变为 0 的键会当即被删除: 若是程序没有访问这个过时键, 或者带有生存时间的键很是多的话, 那么在键的生存时间变为 0 , 直到键真正被删除这中间, 可能会有一段比较显著的时间间隔。