场景描述
公司服务器需要从阿里云迁移到华为云,但是应用里面有一些自增的编码是存储在redis中的,所以redis的数据也需要从阿里云迁移到华为云,阿里云采用redis 4.0 华为云使用 redis 5.0。
解决方案
- RedisShake 阿里巴巴开源的一款redis迁移工具,对
redis port
做了增强,支持:decode、dump、restore、sync(支持增量同步 基于sync
、psync
命令)、rump(只能进行全量同步,基于scan
命令,scan命令不支持的时候还可以指定key 将数据导出到文件中) 支持跨版本迁移 - Redis-port 该有的功能也都有只是少了rump功能,文档看起来比较清爽;本次迁移没使用
操作步骤
- 下载RedisShake
wget https://github.com/alibaba/RedisShake/releases/download/release-v1.6.12-20190711/redis-shake.tar.gz
- 解压文件
tar -zxvf redis-shake.tar.gz -C redis-shake
- 数据导出
- 修改配置文件:
redis-shake/redis-shake.conf
## 填写源数据库信息
source.type = standalone
source.address = redis-server.sodotec.cn:6379
source.password_raw = username:password
- 导出
//数据默认导出到当前目录的 local_dump.0 文件中 也可以修改 rdb.output = local_dump 属性进行修改
./redis-shake -conf redis-shake.conf -type dump
- 数据导入
- 填写目标库信息
target.type = standalone
target.address = 192.168.1.46:6379
target.password_raw =redis-password
rdb.input = ../hins6092439_data_20190711234518.rdb
- 导入
./redis-shake -conf redis-shake.conf -type restore
总结
- 只是简单的使用了该工具,内存文件较小只有200M,后续有大数据量场景还需要仔细摸索
- 数据导出的那一步可以省略掉,直接利用阿里云的备份就行,备份下载下来就是rdb格式额可以直接使用