我已经编写了一些 Golang 代码来备份一堆 Redis 集群,
我发现恢复这些备份的唯一方法是将 dump.rdb 文件复制到某个目录中并重新启动 Redis 实例,
这些实例是 docker 容器,并且卷设置为持久性,
有什么方法可以远程恢复 dump.rdb 文件,
有什么工具可以帮忙吗?
答案1
如果您无法在容器启动时加载 rdb,则可以将 rdb 文件转换为 redis 协议并导入原始协议。
- 确保您已redis-rdb-工具可用的。
scp source-redis:/data/dump.rdb ./dump.rdb
rdb -c protocol dump.rdb > ./dump.protocol
scp ./dump.protocol target-redis:/data/dump.protocol
ssh target-redis -C 'redis-cli --pipe < /data/dump.protocol'
答案2
ssh target-redis -C 'cat /data/dump.protocol | redis-cli --pipe'
答案3
由于该--pipe
方法不适用于以 Redis Cluster 为目标,因此我想添加以下出色的工具集,它确实能够nodes.conf
从服务器或通过rmt -m
(迁移)模式使用: