*Redis DUMP 命令

DUMP 序列化指定 key 的值,返回 Redis 专用的二进制序列化格式(可被 RESTORE 还原)。


*语法

DUMP key

*参数说明

参数 类型 必填 说明
key String 键名

*返回值

返回序列化后的二进制数据(以 SafeString 形式编码);key 不存在则返回 nil。


*时间复杂度

O(1) 访问 key 加上序列化数据量;序列化过程为 O(M),M 为值大小。


*示例

*序列化字符串

> SET mykey hello
OK
> DUMP mykey
"\x00\x05hello\x06\x00\x8f_\xe4"

*不存在的 key

> DUMP nokey
(nil)

*配合 RESTORE

> DUMP mykey
...
> DEL mykey
...
> RESTORE mykey 0 "<dump>"
OK

*常见错误

错误 原因 解决
ERR wrong number of arguments 缺少 key 必须提供 key
WRONGTYPE key 类型虽支持但操作异常 DUMP 支持所有类型

*最佳实践

  • 用于 key 迁移:源节点 DUMP + 目标节点 RESTORE
  • 可作为 Redis 数据的二进制备份手段(比 RDB/AOF 更细粒度)。
  • 注意 DUMP 输出包含校验和,但不含 TTL 信息;RESTORE 时需单独指定。

*FAQ

DUMP 格式是公开的协议吗? 是 Redis 内部的 RDB 序列化格式子集,可被 RESTORE 识别。

大数据量 key DUMP 会阻塞吗? 会,DUMP 在主线程执行,超大 key 可能阻塞毫秒级。

DUMP 和序列化库(如 JSON)有什么区别? DUMP 是 Redis 内部二进制格式,保留数据类型和编码信息,仅 Redis 能还原。