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文档中所述。为什么在这里恢复成功?
答案 0 :(得分:0)
非常有趣的问题,我从来没有推理过这部分文档。 我认为检查是:
因此,不会对上一个可用的RDB快照上存储的先前值执行检查。