You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将AWS上两个Redis实例合并至单个实例的可行性咨询

解决方案:Redis跨实例分DB合并数据

Redis原生主从复制是全实例级同步,切换主节点时会清空目标实例的所有数据库(包括已同步的db0),所以无法直接实现你想要的分DB定向复制。以下是可行的替代方案:

方法一:使用RDB文件导出导入

1. 导出旧实例指定DB的RDB

  • 导出oldhost1的db0:
    # 非阻塞导出指定DB的RDB文件
    redis-cli -h oldhost1 -n 0 bgsave
    # 等待bgsave完成后,从oldhost1的data目录拷贝生成的dump.rdb,重命名为oldhost1-db0.rdb
    # 或者直接用redis-cli的--rdb参数导出
    redis-cli -h oldhost1 -n 0 --rdb oldhost1-db0.rdb
    
  • 导出oldhost2的db1:
    redis-cli -h oldhost2 -n 1 --rdb oldhost2-db1.rdb
    

2. 导入到新实例对应DB

  • 导入oldhost1-db0到newhost1的db0:
    1. 停止newhost1的Redis服务;
    2. 将oldhost1-db0.rdb替换newhost1数据目录下的dump.rdb;
    3. 启动newhost1,数据会自动加载到db0;
    4. 停止newhost1,将oldhost2-db1.rdb替换dump.rdb,确保newhost1的redis.conf中databases配置值≥2,启动服务后执行SELECT 1,数据会加载到db1;
    5. 最后恢复newhost1的原始dump.rdb和配置(可选,若后续需要正常持久化)。

方法二:使用redis-dump/redis-load工具(更灵活)

如果环境允许安装第三方工具,redis-dump和redis-load可以精准导出导入指定DB的数据:

1. 导出数据

# 导出oldhost1 db0
redis-dump -h oldhost1 -d 0 > oldhost1-db0.json

# 导出oldhost2 db1
redis-dump -h oldhost2 -d 1 > oldhost2-db1.json

2. 导入数据

# 导入到newhost1 db0
redis-load -h newhost1 -d 0 < oldhost1-db0.json

# 导入到newhost1 db1
redis-load -h newhost1 -d 1 < oldhost2-db1.json

关键注意事项

  • 操作前务必备份newhost1的所有数据,防止意外丢失;
  • 若使用AWS ElastiCache Redis,可通过导出RDB到S3,再从S3导入到新实例的方式操作,无需手动拷贝文件;
  • 导入过程中禁止对newhost1执行写入操作,避免数据冲突;
  • 大体积数据建议在业务低峰期操作,减少对业务的影响。

内容的提问来源于stack exchange,提问作者jsharpe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:27:15