Redis Key过期通知
2024-09-26 11:08:46
概述
键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件。如Redis数据库中键的过期事件也是通过订阅功能实现。本文主要基于Azure PaaS Redis演示相关功能的具体实现。
配置
因为开启键空间通知功能需要消耗一些 CPU , 所以在默认配置下, 该功能处于关闭状态。因为Azure Redis屏蔽了部分指令,不能直接使用cli指令设置notify-keyspace-events参数,目前可以通过Azure Portal管理门户直接设置。注意: 基本版的Redis还不支持设置该参数。
操作演示
pub/sub
使用Azure Console发布消息
使用Cli工具订阅消息(注意使用cli连接Azure redis需要打开6379端口)
sub expired key event
设置带有过期时间的key
订阅过期key事件
注意
Redis 使用以下两种方式删除过期的键:
1、当一个键被访问时,程序会对这个键进行检查,如果键已经过期,那么该键将被删除。
2、底层系统会在后台渐进地查找并删除那些过期的键,从而处理那些已经过期、但是不会被访问到的键。
当过期键被以上两个程序的任意一个发现、 并且将键从数据库中删除时, Redis 会产生一个 expired 通知。
Redis 并不保证生存时间(TTL)变为 0 的键会立即被删除: 如果程序没有访问这个过期键, 或者带有生存时间的键非常多的话, 那么在键的生存时间变为 0 , 直到键真正被删除这中间, 可能会有一段比较显著的时间间隔。
参考链接
最新文章
- 深入分析Java Web技术内幕(修订版)
- java基础3.0:Java常用API
- VS2010中将当前选定项目做为启动项
- 在VS中使用类模板出现出现LNK2019: 无法解析的外部符号错误。
- java中关于时间的格式化
- CSS定位机制
- IntelliJ IDEA 12 创建Web项目 教程 超详细版
- cmake 学习笔记(四)
- SQLServer 2012异常问题(一)--故障转移群集+镜像环境导致作业执行失败
- sqlDataAdapter的FillSchema用法
- java中重载一定在一个类里面吗?
- .NET Core单文件发布静态编译AOT CoreRT
- json的命名空间
- vue typescript ui库
- Ubuntu16.04彻底删除PHP7.2
- 绘制ROC曲线
- Pytorch学习笔记
- SQL里执行CLR c#代码
- MySQL高可用方案--MHA部署及故障转移
- swift语言混编--语言交互的接口
热门文章
- 【Matrix-tree定理】【BEST Theorem】hdu6064 RXD and numbers
- python基础之反射内置方法元类
- 获取asp.net mvc应用程序的根目录
- [转] hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询
- QPS相关的概念收集(吞吐量(TPS)、QPS、并发数、响应时间(RT))
- 将HTML元素转换成图片供用户下载(html2canvas + canvas2Image)
- 基于tiny4412的Linux内核移植 -- SD卡驱动移植(五)
- 高级进阶DB2(第2版)
- STSDB 一
- java中int取值范围是怎么计算的?