Redis:计算 Redis 集群上特定 class 个键?

Redis: count specific class of keys on a Redis cluster?

是否有一种有效的方法来计算 Redis 集群上特定 class 个键?

这里,'specific class of keys'表示用于共同目的的键;例如,会话密钥。它们可以有一个共同的键名前缀。可以有多个 classes。从现在开始,我将把键的 class 简称为键。

我想做的事情如下:

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

提前致谢。

基本上没有。 "classic"(非集群)也不存在。要在没有额外存储机制的情况下做到这一点,您需要重复使用 SCAN 来遍历整个键空间。幸运的是,它至少接受一个过滤器(因此您不需要获取每个键),但效率很低——您通常只会定期执行此操作作为审查功能,而不是操作功能。我们实际上在 "opserver" 的 redis 插件中包含了这样一个功能。

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

在经典和集群中,建议只在副本上执行此操作,而不是在主服务器上执行此操作。再说一次:仅作为管理工具,而不是系统的常规部分。

请勿使用 KEYS 执行此操作。更喜欢 SCAN.