首页 文章

Redis:计算Redis集群上特定的密钥类别?

提问于
浏览
0

是否有一种有效的方法来计算Redis集群上特定的密钥类?

这里,“特定类别的密钥”表示用于共同目的的密钥;例如,会话密钥 . 它们可以具有公共密钥名称前缀 . 可以有多个 class . 从现在开始,我将把键类简称为键 .

我想做的是如下:

必须使用

  • Redis群集 .

  • 必须将密钥分发到Redis群集的节点 .

  • 必须有一种有效的方法来计算Redis群集的所有节点上的密钥数 .

  • 键可以有TTL - 即可以过期 .

  • 可以在运行时更改Redis群集的节点数,并可以重新分配散列槽 .

  • 客户端使用Node.js实现 .

我已经阅读了文档,但找不到合适的解决方案 .

提前致谢 .

1 回答

  • 1

    不,基本上 . 对于"classic"(非群集)也不存在 . 要在没有其他存储机制的情况下执行此操作,您需要重复使用 SCAN 来迭代整个键空间 . 幸运的是,它至少接受了一个过滤器(所以你通常只会定期做这个作为评论功能,而不是一个操作功能 . 我们实际上在_1150451的redis插件中包含了这样一个功能 .

    切换到群集时,您需要重复此操作,但需要在每组复制垂直中重复一次 . 您通常会通过 CLUSTER 命令获取该列表,因此节点的动态特性没有实际意义 .

    在经典和集群中,建议仅在副本上执行此操作 - 而不是主副本 . 而且:仅作为管理工具,而不是作为系统的常规部分 .

    不要使用 KEYS 来执行此操作 . 首选 SCAN .

相关问题