我正在寻找一种解决方案,将特定数据库从一台 redis 服务器复制到另一台。这两台服务器不位于同一站点,之间没有任何连接 - 因此必须通过某个转储文件传递数据。
我不想使用bgsave
命令并将 dump.rdb 文件移动到目标服务器,因为这将传输所有 redis db 并覆盖目标上的现有数据。(我只想要一个特定的数据库)
还有什么其他解决方案?
答案1
也许这个过程对你有用:
- 转储到 RDB 文件
- 在新实例上加载 RDB
- 删除不需要的数据库并再次转储
- 使用
DEBUG RELOAD NOSAVE NOFLUSH MERGE
(未记录的命令)从步骤 3 加载 RDB 文件
看这里有关步骤 4 的更多信息。
与往常一样,在投入生产之前测试流程
答案2
我猜 Redis 不应该在不同位置之间进行同步,要进行同步,最好将关键数据放在传统数据库中,例如 postgresql 或 MariaDB,它们具有内置功能来同步和备份数据。