场景

Redis实例A ---> Redis实例B,整库全量迁移

方案一:

mac环境
brew install npm
npm install redis-dump -g

针对RedisA: redis-dump -h host1 -p 6379 -d 1 --json > mydb.json
针对RedisB: cat mydb.json | redis-dump --convert | redis-cli
方案二:
参考: http://www.zlovezl.cn/articles/migrate-redis-server-seamlessly/, 利用redis的主从复制,从RedisA同步到RedisB,完成后,恢复RedisB的master身份。

方案三:(针对阿里云Redis数据迁移)
RedisA实例的dump.rdb文件拷贝到一台阿里云ecs服务器上,该服务器应该能够连接到RedisB实例,在该服务器上自建一个redis实例RedisC, 并RedisC的redis.conf配置文件中的下列配置作出修改:
# The filename where to dump the DB
dbfilename dump.rdb

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /data/mydirectory/  #此处路径为你拷贝过来的dump.rdb文件所在路径

启动RedisC实例,即可导入RedisA实例的所有内容

方案四:
开启用户现有 Redis 实例的 AOF 功能(如果实例已经启用 AOF 功能则忽略此步骤)。

# redis-cli -h old_instance_ip -p old_instance_port config set appendonly yes

通过 AOF 文件将数据导入到新的 ApsaraDB for Redis 实例 (假定生成的 AOF 文件名为 append.aof)。
# redis-cli -h aliyun_redis_instance_ip -p 6379 -a password --pipe < appendonly.aof
注意:如果原有旧的 Redis 实例不需要一直开启 AOF,可在导入完成后通过以下命令关闭。
# redis-cli -h old_instance_ip -p old_instance_port config set appendonly no

-------------------------------------- 两个阿里云redis实例间的数据迁移,综合方案三,四 --------------------------------------------------------------
1)旧redis实例的*.rdb文件拷贝到一台阿里云ecs服务器(ServerA)上,执行方案三
保存为dump.rdb到目录 /var/lib/redis/dump.rdb
重启redis: service redis restart
2)执行方案四(在ServerA上运行如下命令)
redis-cli config set appendonly yes(针对本地自建redis)
redis-cli -h 新redis实例host  -a 密码 --pipe < /var/lib/appendonly.aof

/var/lib/appendonly.aof 表示 appendonly.aof文件在ServerA上的绝对路径
redis-cli config set appendonly no (针对本地自建redis)
-------------------------------------- redis数据迁移步骤 End--------------------------------------------------------------------------------------

最新文章

  1. Linux系统1.md
  2. mongodb系列3 mongo mongoskin 连接以及连接数的问题进阶
  3. 《C与指针》第二章练习
  4. &lt;实训|第三天&gt;Linux登录界面的修改以及Richard Stallman、自由软件运动
  5. Android图片裁剪之自由裁剪
  6. delegate实现Javascript的each方法
  7. IE浏览器中用Firebug调试网站的方法
  8. java语言与jvm虚拟机简介
  9. Linux基础命令第一天
  10. Kafka(2)--kafka基本原理之消息的分发与接收
  11. python框架之Django(8)-CBV中添加装饰器
  12. eclipse中去掉validate的方法
  13. luoguP1080 国王游戏 (贪心+高精度)
  14. 洛咕 P3321 [SDOI2015]序列统计
  15. 全面兼容的Iframe 与父页面交互操作
  16. asp.net kindeditor 后台取不到数据
  17. bzoj1620 / P2920 [USACO08NOV]时间管理Time Management
  18. day58-activiti 13-搭建web项目环境
  19. ubuntu16.04安装docker CE
  20. 再过半小时,你就能明白kafka的工作原理了

热门文章

  1. 网络攻击技术开篇——SQL Injection
  2. github在windows下的安装和基本使用
  3. Ceph BlueStore 解析:Object IO到磁盘的映射
  4. DLL 导出变量
  5. 编写一个飞行棋项目(C#)遇到几个问题:
  6. ReactJS的开发日常
  7. java dbutils查询数据库时无法给部分字段赋值原因
  8. 使用splice实现高效的代理服务器
  9. 快速排序OC、Swift版源码
  10. 每天一个linux命令(28)--gzip命令