redis RESTORE命令无法按预期工作

时间:2013-08-29 04:20:21

标签: redis

Redis doc说

  

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

但是当我恢复密钥时,我没有看到任何错误,如下所示。 在开始之前,我记下了两个字符串的转储值,如下所示

坐 - \x00\x03sat\x06\x00a_\xfd<\x8eN\xbf\xf2

dfd - \x00\x03dfd\x06\x00\x0b\xcf@\x12BBso

然后我做了

set b sat
del b
restore b 0 "\x00\x03dfd\x06\x00\x0b\xcf@\x12BBso"

在上面代码的第一行中,b的值设置为'sat',但在第三行中,我使用转储值'dfd'恢复b。我预计会出现错误,如RESTORE文档中所述。为什么在这里恢复成功?

1 个答案:

答案 0 :(得分:0)

非常有趣的问题,我从来没有推理过这部分文档。 我认为检查是:

  1. 检查要恢复的数据的RDB版本是否与正在运行的服务器相同(我的意思是RDB格式的版本)
  2. 要恢复的数据具有有效的校验和
  3. 因此,不会对上一个可用的RDB快照上存储的先前值执行检查。