有没有办法远程恢复 dump.rdb redis 备份文件?

有没有办法远程恢复 dump.rdb redis 备份文件?

我已经编写了一些 Golang 代码来备份一堆 Redis 集群,
我发现恢复这些备份的唯一方法是将 dump.rdb 文件复制到某个目录中并重新启动 Redis 实例,
这些实例是 docker 容器,并且卷设置为持久性,
有什么方法可以远程恢复 dump.rdb 文件,
有什么工具可以帮忙吗?

答案1

如果您无法在容器启动时加载 rdb,则可以将 rdb 文件转换为 redis 协议并导入原始​​协议。

  1. 确保您已redis-rdb-工具可用的。
  2. scp source-redis:/data/dump.rdb ./dump.rdb
  3. rdb -c protocol dump.rdb > ./dump.protocol
  4. scp ./dump.protocol target-redis:/data/dump.protocol
  5. 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(迁移)模式使用:

https://github.com/leonchen83/redis-rdb-cli

相关内容