Redis 键空间通知

本文详细解析了Redis中键空间通知(keyspace notifications)的工作原理,包括如何通过配置notify-keyspace-events参数来启用不同类型的事件通知,如键空间通知和键事件通知。并通过实例展示了客户端如何订阅这些通知并接收相关事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于每个修改数据库的操作,键空间通知都会发送两种不同类型的事件:键空间通知(key-space)和键事件通知(key-event)。

当执行 del key1 命令时:

  • 键空间频道的订阅者将接收到被执行的事件的名字,在这个例子中,就是 del
  • 键事件频道的订阅者将接收到被执行事件的键的名字,在这个例子中,就是 key1
Redis配置

只需修改配置文件redis.conf中的notify-keyspace-events参数,参数可以是以下字符的任意组合, 它指定了服务器该发送哪些类型的通知:

# K    键空间通知,以__keyspace@<db>__为前缀  
# E    键事件通知,以__keysevent@<db>__为前缀  
# g    del , expipre , rename 等类型无关的通用命令的通知, ...  
# $    String命令  
# l    List命令  
# s    Set命令  
# h    Hash命令  
# z    有序集合命令  
# x    过期事件(每次key过期时生成)  
# e    驱逐事件(当key在内存满了被清除时生成)  
# A    g$lshzxe的别名,因此”AKE”意味着所有的事件  

输入的参数中至少要有一个 K 或者 E,否则的话,不管其余的参数是什么,都不会有任何通知被分发。

测试

客户端A订阅 psubscribe __keyevent@0__:*

客户端B发起操作

[root@chokingwin etc]# redis-cli
127.0.0.1:6379> set name aaa
OK

客户端A能接收到通知

1) "pmessage"
2) "__key*@0__:*"
3) "__keyspace@0__:name"
4) "set"
1) "pmessage"
2) "__key*@0__:*"
3) "__keyevent@0__:set"
4) "name"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值