keyspace通知功能
所有支持订阅与发布功能的客户端都可以在不做任何修改的情况下, 直接使用键空间通知功能。
使用须知
- 因为开启键空间通知功能需要消耗一些CPU,所以在默认配置下,该功能处于关闭状态。
- 不建议在高压场景下使用键空间通知功能,不仅会影响实例性能,而且部分事件通知可能被丢弃。
与开源Redis的区别
- 配置方法
直接使用CONFIG SET命令来开启或关闭键空间通知功能。
Config set notify-keyspace-events Ex
- 当notify-keyspace-events选项的参数为空字符串或参数不含K、E时,表示键空间通知功能关闭。
- 双引号表示为空字符串。
- GeminiDB Redis控制台客户端不支持通过将notify-keyspace-events选项的参数设置为空字符串来关闭键空间功能。
- 当notify-keyspace-events选项的参数不是空字符串且配置正确时(具体请参见表1),表示键空间通知功能开启。
- 当notify-keyspace-events选项的参数为空字符串或参数不含K、E时,表示键空间通知功能关闭。
- 支持的通知类型
表1 支持的通知类型 字符
发送的通知
GeminiDB Redis是否支持
K
键空间通知。所有通知以 __keyspace@<db>__ 为前缀。
支持
E
键事件通知。所有通知以 __keyevent@<db>__ 为前缀。
支持
g
与DEL、EXPIRE、RENAME等类型无关的通用命令的通知。
支持
$
字符串命令的通知。
支持
l
列表命令的通知。
支持
s
集合命令的通知。
支持
h
哈希命令的通知。
支持
z
有序集合命令的通知。
支持
x
EXPIRED过期通知。
支持
e
驱逐(evict)事件通知
不涉及
A
参数g$lshzxe的别名。
支持
如表1,GeminiDB Redis当前版本不涉及evict事件。
输入的参数中至少要有一个K或者E ,否则的话,不管其余的参数是什么,都不会有任何通知被分发。
举个例子,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl ,诸如此类。
将参数设为字符串 "AKE" 表示发送所有类型的通知。