为什么Redis扫描返回属于另一个节点的键

问题描述

当我使用以下命令扫描 Redis 时:

redis-cli -h <redis_master_ip> -p 6379  --scan --pattern '*'

它返回属于这个节点的键,但它也返回许多属于另一个 redis 节点的键。因此,如果我运行以下命令:

redis-cli -h <redis_master_ip> -p 6379 object freq <some_keys_from_scan>

我收到类似 Error: MOVED 90 <another_redis_master_ip>:6379

错误

由于同样的原因,运行时出现同样的错误

redis-cli -h <redis_master_ip> -p 6379 --hotkeys

注意 都是 redis 集群的一部分。

文档 https://redis.io/commands/scan 将扫描定义为:“迭代当前选定的 Redis 数据库中的键集”。我的理解是它应该只扫描属于当前节点的键。我的 redis 集群是 6.0.10。

有谁知道为什么执行 scan 会返回另一个节点的键?我只对获取此节点的密钥感兴趣。

我看到另一个链接提到了同样的问题,但还没有解决方案:https://github.com/redis/redis/issues/4810

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)