使用 dump.rdb 恢复 redis 实例不起作用

使用 dump.rdb 恢复 redis 实例不起作用

我在 qa 环境中有一个包含 10 个键的 redis 实例。该实例配置为dump.rdb在目录中使用/tmp。我运行了“save”命令并看到了dump.rdb创建的新文件。然后我在其他主机上创建了新实例。将其复制dump.rdb到“dir”目录中的新实例,因为它是在redis.conf文件中配置的。我停止了新实例然后启动它。如果我在新实例上运行“keys *”命令,我会得到 null。可能是dump.rdb在服务器启动时没有读取该文件。我关注了帖子 https://stackoverflow.com/questions/14497234/how-to-recover-redis-data-from-snapshotrdb-file-copied-from-another-machine

但没有成功。

旧实例上的步骤:

set aaa 111 
set bbb 222 
etc etc 
SAVE 
scp dump.rdb new_host:/dir 

在新主机上:

stop redis serivce 
start redis service .
redis-cli -h ... -p ... 
keys *

(空列表或集合)

和想法?

答案1

发现问题所在。

启动新服务器时需要使用特定的转储文件作为参数,尽管配置文件中设置了“dir”参数,但上面写着启动服务时 redis 会查找配置的 rdb 文件,但这对我来说不起作用。必须运行 redis-server /path_to_config_file --dbfilename dump.rdb --dir /path_to_directory_where_the_dump_file_is_located

上述命令完成了这项工作。

相关内容