Skip to content

[Bug]: Redis「集群」模式只列出其中一个节点的 key,不会汇总所有 master #414

Closed

Description

@shenfeng-1

发生了什么?/ What happened?

Redis「集群」模式只列出其中一个节点的 key,不会汇总所有 master。

我用「集群」模式填了三个节点(192.168.x.x:7001/7002/7003,均为 master,cluster_state:ok、16384 槽全分配、cluster_state/宣告 IP 均正常),但 Navop 的 Key 树只显示第一个节点上的 5 个 key。三个节点各自的 dbsize 是 5 / 3 / 3(共 11),也就是说另外两个节点的 key 完全没有被读到。

期望:Key 树汇总所有 master 的 key(对每个 master 各发一次 SCAN,或改走 ClusterClient)。

顺带一提,看完源码后我认为**「集群」模式在当前版本里基本没有生效**,详见下方分析——这可能不是单纯的"漏扫了节点",而是集群支持还没接完。

如何复现?/ How can we reproduce it?

  1. 起一个 3 master 的 Redis Cluster(我用的是 Redis 7.2.12,三主无从,槽位正常)
  2. 新建连接 → 基本信息:主机地址/端口填 第一个 节点的地址,数据库填 0
  3. 切到 连接模式 → 选「集群」→ 在「集群节点」里填入三个节点(每行一个 host:port)
  4. 连接后展开 Key 树

实际结果:只列出第 2 步里填的那个节点的 key
期望结果:列出三个节点的全部 key

版本与系统 / Version and system

Navop 0.20.2(当前最新 release),macOS 27.0 / Apple Silicon (arm64)

截图、日志或其他信息 / Screenshots, logs, or anything else

No response

Activity

  1. added a commit that references this issue on Oct 16, 2026
  2. added a commit that references this issue on Oct 19, 2026
  3. shenfeng-1 commented on Oct 19, 2026

    @shenfeng-1
    Author

    @feigeCode 更新到v0.20.3后可以看到所有集群节点上的key,但是拉取对应节点的数据时报错:
    加载失败:Command error:TYPE失败。:An error was signalledby the server - Moved: 7243 192.168.60.142:7002
    看上去是没有moved到对应的节点上重试导致的

  4. added 2 commits that reference this issue on Oct 19, 2026
  5. feigeCode commented on Oct 28, 2026

    @feigeCode
    Owner

    两项都已在 dev 处理,本单可以关闭。首次发布:1a7be5a92 随 v0.20.3(2026-10-19)、2192baa76 随 v0.20.4(2026-10-20);v0.22.0 也都包含。

    1. 集群只列一个节点的 key —— 1a7be5a92:集群模式下遍历 CLUSTER SLOTS / NODES,并行汇总所有 master 的键,各节点分别统计键数。
    2. 拉取数据报 Moved: <slot> host:port(你在 v0.20.3 上的后续反馈)—— 2192baa76:新增通用 with_moved_retry,解析 MOVED 后直连目标节点重试一次(按端点缓存连接)。覆盖 set/del/expire/persist/rename/hset/hdel/lpush/rpush/lset/sadd/srem/zadd/zrem/get_key_value_detail 全部单键 *_in_db 入口;控制台原始命令保持直连(写命令重放有副作用)。

    本地 3 master 集群实测:跨节点读详情与 EXPIRE 都能正确重定向。

    升级到 v0.20.4 及以后(v0.22.0 也行)再试试直连节点取数据;如果还有别的命令漏了重定向,把命令和报错贴过来,我们按入口补齐。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions