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 时间戳(以毫秒为单位)。
出于驱逐目的,您可以使用 IDLETIME
或 FREQ
修饰符。有关更多信息,请参阅 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 版本开始:添加了
IDLETIME
和FREQ
选项。