缓存超时策略(2):缓存过期时自动触发事件

https://blog.csdn.net/github_26672553/article/details/82014804

这里写图片描述
用redis的订阅/发布功能来做的好处是
如果我们是多个服务器节点,每个节点都订阅,这样只要向频道发送命令,每个节点都会执行。
这里写图片描述

redis 2.8之后有一个功能叫做 Keyspace通知

https://redis.io/topics/notifications
触发某些事件后可以向指定的频道发送通知。

K   键空间通知,所有通知以 __keyspace@<db>__ 为前缀,针对key
E   键事件通知,所有通知以 __keyevent@<db>__ 为前缀,针对event
g   DEL, EXPIRE, RENAME等类型无关的t通用命令的通知
$   字符串命令的通知
l   列表命令的通知
s   集合命令的通知
h   哈希命令的通知
z   有序集合命令的通知
x   过期事件:每当有过期键被删除时发送
e   驱逐(Evict)事件:每当有键因为maxmemory政策而被删除时发送
A   参数g$lshzxe的别名,相当于All

默认情况下,禁用keyspace事件通知。
使用redis的notify-keyspace-events启用通知。

vi redis.conf

notify-keyspace-events EX

基础知识

为了分区数据,redis支持数据库(db)的切换。默认连接的是0.
配置文件中有databases属性可以设置数量,默认是16

1、通过 select x 来进行切换(注意是从0开始的)
2、flushall 则清空所有db的数据;flushdb是清空当前db的数据

回到正题

都统一对 db0进行操作

#一个客户端订阅 过期事件
subscribe __keyevent@0__:expired

#另外一个客户端
setex name 10 jack

10秒过后,过期,订阅端就会收到消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值