RESTORE

语法
RESTORE key ttl serialized-value [REPLACE] [ABSTTL]
  [IDLETIME seconds] [FREQ frequency]
可用版本
Redis 开源版本 2.6.0
时间复杂度
创建新键的时间复杂度为 O(1),外加重构序列化值所需的时间 O(N*M),其中 N 是构成该值的 Redis 对象数量,M 是它们的平均大小。对于小的字符串值,时间复杂度因此为 O(1)+O(1*M),其中 M 较小,所以简单来说是 O(1)。但是,对于有序集合值,时间复杂度为 O(N*M*log(N)),因为将值插入有序集合的时间复杂度为 O(log(N))。
ACL 类别
@keyspace, @write, @slow, @dangerous,

创建一个键,其关联的值是通过反序列化提供的序列化值(通过 DUMP 获取)获得的。

如果 ttl 为 0,则创建键时不设置过期时间;否则,设置指定的过期时间(以毫秒为单位)。

如果使用了 ABSTTL 修饰符,则 ttl 应表示键将过期的绝对 Unix 时间戳(以毫秒为单位)。

出于驱逐目的,您可以使用 IDLETIMEFREQ 修饰符。有关更多信息,请参阅 OBJECT

除非使用 REPLACE 修饰符,否则当 key 已存在时,RESTORE 将返回“Target key name is busy”错误。

RESTORE 检查 RDB 版本和数据校验和。如果它们不匹配,则返回错误。

示例

redis> DEL mykey
0
redis> RESTORE mykey 0 "\n\x17\x17\x00\x00\x00\x12\x00\x00\x00\x03\x00\
                        x00\xc0\x01\x00\x04\xc0\x02\x00\x04\xc0\x03\x00\
                        xff\x04\x00u#<\xc0;.\xe9\xdd"
OK
redis> TYPE mykey
list
redis> LRANGE mykey 0 -1
1) "1"
2) "2"
3) "3"

RESP2/RESP3 回复

[简单字符串回复](../../develop/reference/protocol-spec#simple-strings):OK

历史

  • 从 Redis 3.0.0 版本开始:添加了 REPLACE 修饰符。
  • 从 Redis 5.0.0 版本开始:添加了 ABSTTL 修饰符。
  • 从 Redis 5.0.0 版本开始:添加了 IDLETIMEFREQ 选项。
评价此页
返回顶部 ↑