更新时间:2024-02-08 GMT+08:00

keyspace通知功能

所有支持订阅与发布功能的客户端都可以在不做任何修改的情况下, 直接使用键空间通知功能。

使用须知

  • 因为开启键空间通知功能需要消耗一些CPU,所以在默认配置下,该功能处于关闭状态。
  • 不建议在高压场景下使用键空间通知功能,不仅会影响实例性能,而且部分事件通知可能被丢弃。

与开源Redis的区别

  1. 配置方法

    直接使用CONFIG SET命令来开启或关闭键空间通知功能。

    Config set notify-keyspace-events Ex

    • 当notify-keyspace-events选项的参数为空字符串或参数不含K、E时,表示键空间通知功能关闭。
      • 双引号表示为空字符串。
      • GeminiDB Redis控制台客户端不支持通过将notify-keyspace-events选项的参数设置为空字符串来关闭键空间功能。
    • 当notify-keyspace-events选项的参数不是空字符串且配置正确时(具体请参见表1),表示键空间通知功能开启。
  2. 支持的通知类型
    表1 支持的通知类型

    字符

    发送的通知

    GeminiDB Redis是否支持

    K

    键空间通知。所有通知以 __keyspace@<db>__ 为前缀。

    支持

    E

    键事件通知。所有通知以 __keyevent@<db>__ 为前缀。

    支持

    g

    与DEL、EXPIRE、RENAME等类型无关的通用命令的通知。

    支持

    $

    字符串命令的通知。

    支持

    l

    列表命令的通知。

    支持

    s

    集合命令的通知。

    支持

    h

    哈希命令的通知。

    支持

    z

    有序集合命令的通知。

    支持

    x

    EXPIRED过期通知。

    支持

    e

    驱逐(evict)事件通知

    不涉及

    A

    参数g$lshzxe的别名。

    支持

    表1GeminiDB Redis当前版本不涉及evict事件。

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

    举个例子,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl ,诸如此类。

    将参数设为字符串 "AKE" 表示发送所有类型的通知。