redis-check-rdb是唯一开箱即用、零依赖、纯静态解析RDB文件头和校验信息的官方工具,可直接提取redis-ver、ctime、used-mem等AUX FIELD元数据,不加载键值内容,也不依赖Python环境。

直接用 redis-check-rdb 查看 RDB 文件头和校验信息,这是最轻量、最可靠的方式——不依赖 Python 环境,也不加载全部数据,纯静态解析。
用 redis-check-rdb 检查 RDB 文件是否合法 + 提取基础元数据
redis-check-rdb 是 Redis 官方自带的工具(随 redis-server 一起安装),专为验证和诊断 RDB 文件设计。它不解析键值内容,只读取文件头、版本号、数据库数量、EOF 标记和 CRC64 校验和。
- 运行
redis-check-rdb /path/to/dump.rdb,正常输出类似:[offset 0] Checking RDB file dump.rdb [offset 212] AUX FIELD redis-ver = '7.2.5' [offset 232] AUX FIELD redis-bits = '64' [offset 248] AUX FIELD ctime = '1718234567' [offset 264] AUX FIELD used-mem = '24892345' [offset 284] AUX FIELD repl-id = 'a1b2c3d4...' [offset 304] AUX FIELD repl-offset = '123456789' [offset 312] Selecting DB ID 0 [offset 320] Checksum OK
- 关键元数据都在
AUX FIELD行里:redis-ver是生成该 RDB 的 Redis 版本;ctime是 Unix 时间戳(需date -d @1718234567转换);used-mem是写入时估算的内存用量;repl-id/repl-offset表明是否来自主从同步场景 - 如果文件损坏,会明确报错如
Invalid rdb header或Wrong RDB checksum,不用等到解析中途崩溃
rdbtools 的 --command justkeys 不等于元数据,但能快速统计结构分布
很多人误以为 rdb --command justkeys 是看“元数据”,其实它只是快速列出所有 key 名(不带 value),本质是轻量级内容扫描,不是文件头解析。但它对评估数据规模很有用。
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
-
rdb --command justkeys dump.rdb | wc -l得到总 key 数(注意:含过期但未删除的 key) -
rdb --command justkeys --db 0 dump.rdb | head -20快速确认 DB0 是否有预期前缀的 key - 加
--type hash,set可筛出某类结构的 key 数量,间接反映数据模型倾向(比如set过多可能暗示去重逻辑密集) - ⚠️ 注意:它仍会完整遍历 RDB,若没装
python-lzf,大文件会极慢;且不提供时间、版本等真正元数据
别用 redis-cli --rdb,它不输出元数据,只做数据载入模拟
redis-cli --rdb dump.rdb 的行为是启动一个临时 Redis 实例,把 RDB 加载进去再退出——它根本不会打印任何元数据,只在 stderr 输出加载过程日志(如 10000 keys loaded),且无法获取版本、时间戳等头部字段。
- 它适合验证“这个 RDB 能否被当前 Redis 版本加载”,但不是查看元数据的途径
- 执行后无 stdout 输出,想看结果必须搭配
redis-cli KEYS *这类命令,已脱离“元数据”范畴 - 若 RDB 版本高于本地 Redis(如 7.2 的 RDB 用 6.2 加载),会直接失败并报
Can't handle RDB format version 11,此时redis-check-rdb才能提前暴露问题
真正需要元数据时,redis-check-rdb 是唯一开箱即用、零依赖、结果确定的方案;其他工具要么是内容层扫描,要么是运行时模拟,都绕不开“加载数据”这个动作——而元数据存在于文件开头几百字节,根本不需要碰 key。

















