Navicat根本不支持Redis,所谓“看不到所有DB索引”是因连接未建立而非配置问题;官方自15版起已明确不提供Redis支持,所有带“Redis”字样的安装包均非官方发布,Navicat无法解析RESP协议,也不支持SELECT切换DB或读取databases配置。
navicat 根本不支持 redis,所以“看不到所有 db 索引”不是配置问题,而是连接压根没成立。
Navicat for Redis 是个不存在的官方产品
Navicat 官方从 15 版本起就明确不提供 Redis 支持;所有带 “Redis” 字样的 Navicat 安装包(如 Navicat for Redis、Navicat Premium with Redis support)都不是官方发布,也不被认可。你看到的数据库列表为空、DB 编号只显示 0、或根本连不上 redis:// 地址,不是因为你没改 databases 参数,而是 Navicat 压根无法解析 RESP 协议,连握手都失败。
- Navicat 底层依赖 JDBC/ODBC 驱动,而 Redis 没有标准 JDBC 实现,也没有官方认证驱动
- 即使你手动在
redis.conf中把databases 16改成databases 64并重启 Redis,Navicat 依然识别不了——它连INFO命令返回的dbsize字段都收不到 - 所谓“显示空数据库”选项(右键连接 → 显示空数据库)只对 MySQL/PostgreSQL 类关系型数据库生效,对 Redis 导航窗格完全无响应
Redis 的 databases 参数和 Navicat 无关
databases 是 Redis 服务端配置项,控制的是服务器内部可用的逻辑 DB 数量(默认 0–15),但它不影响客户端能否“发现”这些 DB——Redis 本身不提供 DB 列表枚举接口,客户端必须显式切换(如 SELECT 5)。Navicat 连不上,自然也切不了。
- 真正能读取
databases值的工具只有redis-cli CONFIG GET databases或INFO输出里的db0–db15统计行 - 图形化工具如
Another Redis Desktop Manager(ardm)会默认展示全部 16 个 DB 标签页,但这是它自己硬编码的,不是从服务端动态拉取的 - 如果你用
redis-cli -n 8能正常操作 DB 8,说明databases配置已生效;Navicat 连不上,跟这个值毫无关系
别在 Navicat 里折腾 Redis 连接参数
任何试图通过修改 Navicat 连接窗口里的“数据库”字段、URL 格式(如 redis://:pwd@127.0.0.1:6379/8)、或勾选“使用自定义数据库列表”来“强制显示 DB 8”的操作,都会失败。因为 Navicat 不理解 /8 这种路径语义,也不发送 SELECT 命令。
- 错误现象:连接后导航栏空白、双击无反应、执行
KEYS *报ERR unknown command(实际是协议解析失败) - 真实原因:
Connection refused或日志里出现Unsupported protocol,不是密码错或端口错,是协议层拒绝 - 替代方案直接用
redis-cli -n 8 -a "mypass",或在 ardm 里手动点 DB 8 标签页,这才是有效路径
真正要调大 DB 数量,只做两件事:改 redis.conf 里的 databases,然后 redis-server redis.conf 重启。至于怎么连——换工具,别卡在 Navicat 上。Redis 的协议特性决定了它不适合套用关系型数据库的 GUI 连接范式,强行适配只会掩盖底层断层。


















