Redis可以向客户端通知某些事件的发生。
例如,键空间(keyspace)时间通知如果开启,一个客户端对Database 0中的“foo”键执行了DEL操作,两条信息会通过Pub/Sub发布出去:
-
PUBLISH__keyspace@0__:foo del
-
PUBLISH__keyevent@0__:del foo
可以选择需要发送哪种类型的通知,每种类型用一个字母代表:
K 键空间事件,发布到“__keyspace@<db>__ prefix”频道
E 键事件, 发布到“ __keyevent@<db>__ prefix”频道
g 通用事件,比如 DEL,EXPIRE, RENAME, ...等操作都属于
$ String操作
l List操作
s Set操作
h Hash操作
z Sorted set操作
x 过期操作
e 驱逐操作(因为内存不足数据被删除)
A 代表“g$lshzxe”的组合, 所以“AKE”可以代表所有事件
notify-keyspace-events配置以上述的字母组合为参数,举例说明:
-
(1)notify-keyspace-events Elg
当有List操作或通用操作,发布通知到“ __keyevent@<db>__ prefix”频道
-
(2)notify-keyspace-events Ex
当有键的过期操作时,发布通知到“__keyevent@0__:expired”频道
默认情况下,notify-keyspace-events的参数为空字符串,代表关闭通知。
-
notify-keyspace-events ""