迁移需要用到 redis-dump 工具,需要安装,centos 7 步骤如下
1、配置yum仓库
yum install centos-release-scl-rh -y
2、安装依赖环境ruby
scl enable rh-ruby23 bash
3、查看ruby版本
ruby -v
4、安装 redis-dump
gem install redis-dump -V
redis-dump -u IP:PORT -d 6 -a pwd > redis_6379_db6.json
注:以下皆是需要导出数据的redis
IP,port都知道,不多说了
-d 6 :指定导出redis DB 6 的数据(不指定该参数即导出全部)
-a :指定导出redis的密码(无密码不需要指定该参数)
redis_6379_db6.json :将数据导出到改文件里
cat redis_6379_db6.json | redis-load -u :tcdept70@IP:PORT -d 6
在二、中导出文件的位置执行
注:以下参数皆是需要导入目标redis服务的参数
-u:密码@IP:端口
-d 6 :导入到 DB 6
另:如遇报错
ERROR (Yajl::ParseError): lexical error: invalid bytes in UTF8 string. lue":{"maxInactiveInterval":"¬웵0000\u0005sr\u0000\u0011jav (right here) ------^
#如上报错可加参数 -n,不检查 utf-8格式
cat redis_6379_db6.json | redis-load -n -u :tcdept70@IP:PORT -d 6
1、A服务器 70W + 个key导出到A服务器本地 大概耗时 20 分钟
2、从A服务器导入到B服务器预计耗时 2 小时,这是不能容忍的
PS:在需要导入的目标服务器安装 redis-dump,scp文件过去在目标服务器本地执行 耗时大概 40分钟