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>
相关推荐
hshpy1 分钟前
setting up Activiti BPMN Workflow Engine with Spring Boot
数据库·spring boot·后端
文牧之1 小时前
Oracle 审计参数:AUDIT_TRAIL 和 AUDIT_SYS_OPERATIONS
运维·数据库·oracle
篱笆院的狗1 小时前
如何使用 Redis 快速实现布隆过滤器?
数据库·redis·缓存
洛神灬殇2 小时前
【LLM大模型技术专题】「入门到精通系列教程」基于ai-openai-spring-boot-starter集成开发实战指南
网络·数据库·微服务·云原生·架构
小鸡脚来咯2 小时前
redis分片集群架构
数据库·redis·架构
什么都想学的阿超2 小时前
【Redis系列 03】掌握Redis编程艺术:事务、管道与Lua脚本完全指南
redis·junit·lua
christine-rr3 小时前
征文投稿:如何写一份实用的技术文档?——以软件配置为例
运维·前端·网络·数据库·软件构建
海尔辛3 小时前
SQL 基础入门
数据库·sql
betazhou4 小时前
有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件
linux·数据库·mysql·oracle·mariadb
Elohim8155 小时前
数据库SQLite基础
数据库·sqlite