Redis Key过时通知

概述

键空间通知使得客户端能够经过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件。如Redis数据库中键的过时事件也是经过订阅功能实现。本文主要基于Azure PaaS Redis演示相关功能的具体实现。html

配置

由于开启键空间通知功能须要消耗一些 CPU , 因此在默认配置下, 该功能处于关闭状态。由于Azure Redis屏蔽了部分指令,不能直接使用cli指令设置notify-keyspace-events参数,目前能够经过Azure Portal管理门户直接设置。注意: 基本版的Redis还不支持设置该参数。redis

image

操做演示

pub/sub
  • 使用Azure Console发布消息
    image数据库

  • 使用Cli工具订阅消息(注意使用cli链接Azure redis须要打开6379端口)
    image工具

sub expired key event
  • 设置带有过时时间的key
    imagespa

  • 订阅过时key事件
    image.net

注意

Redis 使用如下两种方式删除过时的键:htm

一、当一个键被访问时,程序会对这个键进行检查,若是键已通过期,那么该键将被删除。blog

二、底层系统会在后台渐进地查找并删除那些过时的键,从而处理那些已通过期、可是不会被访问到的键。事件

当过时键被以上两个程序的任意一个发现、 而且将键从数据库中删除时, Redis 会产生一个 expired 通知。get

Redis 并不保证生存时间(TTL)变为 0 的键会当即被删除: 若是程序没有访问这个过时键, 或者带有生存时间的键很是多的话, 那么在键的生存时间变为 0 , 直到键真正被删除这中间, 可能会有一段比较显著的时间间隔。


参考连接

键空间通知(keyspace notification)

redis过时通知

相关文章
相关标签/搜索