redis的服务端没有开启配置数据库通知的配置,在redis服务端执行下边命令即可
config set notify-keyspace-events Egx
config rewrite
数据库通知是Redis 2.8版本新增加的功能,这个功能可以让客户端通过订阅给定的频道或者模式,获知数据库中键变化,以及数据库中命令执行情况
分类:
键空间通知:“某个键执行了什么命令”的通知称为键空间通知(key-space notification)
键事件通知:键事件通知(key-event notification)关注的是“某个命令被什么键执行了”notify-keyspace-events选项的redis5.0.5默认值为AE,参数可以是以下表格中字符的任意组合,它指定了服务器该发送哪些类型的通知
例如:
AKE 让服务器发送所有类型的键空间通知和键事件通知
AK 让服务器发送所有类型的键空间通知
AE 让服务器发送所有类型的键事件通知
K$ 让服务器只发送和字符串键有关的键空间通知
El 让服务器只发送和列表键有关的键事件通知常用过期事件通知 notify-keyspace-events Ex
如果不设置上面的值,SUBSCRIBE命令不会有任何效果,输入的参数中至少要有一个K或者E,否则其余参数不会有任何的通知生效。
字符 | 发送的通知 |
---|---|
K | 键空间通知,所有通知以__keyspace@<db>__ 为前缀 |
E | 键事件通知,所有通知以 __keyevent@<db>__ 为前缀 |
g | DEL 、 EXPIRE 、 RENAME 等类型无关的通用命令的通知 |
$ | 字符串命令的通知 |
l | 列表命令的通知 |
s | 集合命令的通知 |
h | 哈希命令的通知 |
z | 有序集合命令的通知 |
x | 过期事件,每当有过期键被删除时发送 |
e | 驱逐事件,每当有键因为maxmemory政策而被删除时发送 |
A | 参数 g$lshzxe 的别名 |