Navicat for Redis 的“备份”实为导出键值对为JSON/CSV文件,非Redis原生RDB格式;不调用SAVE/BGSAVE命令,也不依赖redis.conf配置,仅支持客户端侧结构化数据快照与导入。
SAVE 命令不能在 Navicat for Redis 中触发 RDB 快照备份 —— Navicat **不提供对 Redis 服务端 SAVE 或 BGSAVE 的直接调用能力**,也不支持通过界面按钮生成 RDB 文件。这是常见误解的源头。
Navicat for Redis 的“备份”实际指什么?
navicat for redis 的「备份」功能(右键数据库 → 备份)本质是导出当前选中键的**结构化数据快照为 json 或 csv 文件**,不是 redis 原生的 .rdb 文件。它不调用 redis 服务端命令,也不依赖 redis.conf 中的 save 配置项或 dir 路径。
- 导出的是客户端视角的键值对列表(含类型、TTL、值内容),非二进制 RDB 格式
- 无法还原为 Redis 启动时自动加载的
dump.rdb - 不保证原子性、不包含 AOF 重写状态、不捕获后台子进程行为
想真正执行 SAVE 或 BGSAVE,必须用命令行或查询编辑器
Navicat for Redis 提供了「查询编辑器」,可手动发送原生命令。但要注意:
-
SAVE会阻塞 Redis 主进程,生产环境严禁使用;应优先用BGSAVE - 执行后无图形反馈,需切换到「命令监控」或日志窗口查看是否返回
OK - 生成的
dump.rdb文件保存在 Redis 服务端配置的dir目录下(如/var/lib/redis),Navicat 不负责下载或同步该文件 - 若 Redis 以非 root 用户运行,且
dir权限不足,BGSAVE会静默失败(日志里报Failed to open .rdb for saving: Permission denied)
示例操作:
BGSAVE→ 执行 → 查看「信息日志」是否显示
Background saving started by pid XXX。
Navicat 导出的数据文件 ≠ RDB,还原时不能双击导入
你用 Navicat 备份得到的 .json 或 .csv 文件,只能通过 Navicat 的「导入」功能(右键数据库 → 导入)重新写入键值,过程是逐条 SET/HSET 等命令模拟,不是 Redis 的 redis-server --load-dir 加载方式。
Redis 8.2.3 是一款安全优先的高性能键值存储系统。该版本紧急修复了可能引发远程代码执行(RCE)的高危漏洞(CVE-2025-62507),并解决了 HyperLogLog 及 Cuckoo Filter 等数据结构在特定场景下的崩溃问题。建议所有用户立即升级,以保障生产环境的系统稳定与数据安全。
- 大容量数据导入可能超时,需调高 Navicat 的「查询超时」设置(工具 → 选项 → 环境 → 查询)
- 导入不恢复原始 TTL 精度(部分版本会统一设为 0 或忽略过期时间)
- 无法还原 Stream、Geo、Bitmap 等复杂结构的完整元数据
防止 Redis 数据丢失,得靠组合策略
单靠 Navicat 点几下,解决不了持久化可靠性问题。关键动作要落在服务端:
- 确认
redis.conf已启用save规则(如save 900 1)和dbfilename dump.rdb - 开启 AOF(
appendonly yes)并设appendfsync everysec,兼顾性能与安全性 - 定期用
redis-cli --rdb /path/to/backup.rdb把 RDB 文件拷贝到异地存储 - Navicat 只适合做「人工抽检导出」或「开发环境快速回滚小数据」,别当生产级备份方案
最易被忽略的一点:Navicat 连接的是 Redis 实例的 TCP 端口,它本身没有权限读取服务器本地磁盘上的 dump.rdb 文件 —— 所以你永远看不到那个文件出现在 Navicat 界面里,也别指望它帮你自动上传或归档。










