Navicat 17 不支持 Redis 集群拓扑发现,仅能连接单节点并将其当作独立实例处理;它不解析 CLUSTER NODES/CLUSTER SLOTS 响应,不重定向 MOVED/ASK 错误,也不建立集群总线通信,所谓“Redis (Cluster)”连接类型实为无效选项,正确连接方式是选用 Redis (Standalone) 模式并手动配合外部工具管理集群。
navicat 17 不支持 redis 集群拓扑发现,所谓“看不到全部节点”不是配置遗漏,而是它压根不解析 cluster nodes 响应,也不会自动连接其他节点。
Navicat 17 根本不实现 Redis 集群协议
它把 Redis 集群当成单机对待:只连你填的那个 Host:Port,收到 MOVED 或 ASK 响应时直接报错,不会重定向、不会拉取节点列表、也不发 CLUSTER SLOTS。官方文档里没有“Redis Cluster”连接类型——你看到的 Redis (Cluster) 选项是摆设,底层未启用集群模式逻辑。
常见错误现象包括:
-
MOVED 12345 192.168.10.21:7001持续报错,且 Navicat 不跳转 - 键列表为空或只显示部分 key(仅限该节点负责的 slot)
- 右键“刷新节点”“重新获取拓扑”等菜单项灰色不可用
别在 Connection Type 里选 “Redis (Cluster)”
这个选项在 Navicat 17 中仅影响 TLS 和 ACL 字段是否启用,和集群行为无关。实际连接仍走单节点 TCP,不建立集群总线通信,也不监听 +10000 端口。选它反而容易误导你认为“已开启集群支持”。
正确做法是:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- 连接类型必须选
Redis (Standalone)(这是唯一真正生效的模式) - Host 填集群中任意一个可访问的主节点地址(如
192.168.10.20:7001) - 密码、用户名按该节点 ACL 配置如实填写(注意:default 用户权限需含
+cluster才能执行CLUSTER NODES) - 关闭设置里的
Auto-refresh keys list,避免因 SCAN 跨 slot 失败导致界面卡死
想看全部节点?得绕过 Navicat 直查
Navicat 不提供节点视图,也没 API 暴露集群状态。你必须用外部工具确认真实拓扑:
- 在服务器上跑:
redis-cli -c -h 192.168.10.20 -p 7001 CLUSTER NODES(-c启用集群模式) - 用
Another Redis Desktop Manager (ardm)连同一地址,它会主动拉取并展示所有节点标签页 - 若需监控槽位分布,执行:
redis-cli -c -h x -p y CLUSTER SLOTS,结果是数组结构,Navicat 完全不解析
注意:Navicat 里执行任何 CLUSTER * 命令返回的都是原始 RESP 字符串,不会格式化,也不能点击跳转节点。
真正能管理 Redis 集群的替代方案
如果你需要图形化查看全部节点、手动迁移槽位、检查主从状态,Navicat 17 不是合适工具。推荐组合:
- 日常键值操作:
ardm(免费开源,支持集群拓扑+SSH 隧道+TLS) - 运维诊断:
redis-cli -c+CLUSTER INFO/CLUSTER NODES(最准,无抽象层) - 脚本批量操作:用
redis-py的RedisCluster类(Python),或ioredis(Node.js)
Navicat 17 的“Redis 支持”本质是单节点 RESP v2 封装,对集群、哨兵、RESP3、ACL 细粒度权限都存在硬性缺失。它能连上某个节点并读写局部数据,不代表它理解 Redis 分布式语义——这点最容易被忽略。

















