redis监听key失效

前言

​ 使用redis进行大数据量信息存储时,如存储百万级别设备/通道信息,如果我们想获取设备/通道是否失效,常规的方法是定时获取,但是这样对于应用来说太消耗性能。

​ redis提供了一种key事件监听的机制,应用可以监听key失效事件,当key失效时,redis会将key失效事件回调通知。

修改

1)修改redis.conf配置

bash 复制代码
# 修改前
#  notify-keyspace-events

# 修改后
notify-keyspace-events Ex

# 屏蔽
# notify-keyspace-events ""

重启redis

bash 复制代码
systemctl restart redis
# 如果修改云redis参数无需重启

示例

1)打开redis-cli,启动监听(示例包含监听到的事件)

bash 复制代码
[root@localhost redis]# redis-cli -p 6379
127.0.0.1:6379> PSUBSCRIBE channel __keyevent@*__:expired
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "channel"
3) (integer) 1
1) "psubscribe"
2) "__keyevent@*__:expired"
3) (integer) 2

# 2s后收到key为"name"过期失效的消息
1) "pmessage"
2) "__keyevent@*__:expired"
3) "__keyevent@0__:expired"
4) "name"

2)启动另一个redis-cli,设置一个有效期为2s的key

bash 复制代码
[root@localhost ~]# redis-cli -p 6379
# 设置name的有效期为2s,value为1
127.0.0.1:6379> SETEX name 2 1
OK
127.0.0.1:6379>
相关推荐
未来的旋律~10 分钟前
sqlilabs注入靶场搭建与sql语句
数据库·sql
一个天蝎座 白勺 程序猿26 分钟前
KingbaseES查询逻辑优化深度解析:从子查询到语义优化的全链路实践
开发语言·数据库·kingbasees·金仓数据库
我真的是大笨蛋34 分钟前
InnoDB行级锁解析
java·数据库·sql·mysql·性能优化·数据库开发
山茶花.1 小时前
SQL注入总结
数据库·sql·oracle
派大鑫wink2 小时前
【Day61】Redis 深入:吃透数据结构、持久化(RDB/AOF)与缓存策略
数据结构·redis·缓存
m0_736919102 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
m0_748229992 小时前
ThinkPHP快速入门:从零到实战
c语言·开发语言·数据库·学习
阿蒙Amon2 小时前
C#每日面试题-Thread.Sleep和Task.Delay的区别
java·数据库·c#
沉舟侧畔千帆过_3 小时前
一个DBA的真心话:搞定Oracle+PG双库,我就靠这招
数据库·oracle·dba
醉风塘3 小时前
【终极解决方案】Oracle ORA-01795错误:IN列表1000条限制的全面突破指南
数据库·oracle