Redis数据迁移
## 引言
随着技术与业务的发展,我们一开始使用的Redis版本或者模式,肯定会被替换或版本升级。这种事件的发生是不可避免的,发生此种情况后,肯定需要做数据迁移,那么在迁移的过程中,怎么保证数据不丢失呢,下面就介绍一款Redis数据迁移工具**redis-shake**
---
### 下载
`wget 'http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/120287/cn_zh/1608173646665/redis-shake-v2.0.3.tar.gz'`
使用`wget`指令直接下载,或者再47(47.115.13.44)服务器上的`resource`目录下面找到。
### 安装
下载完成后,直接到你的服务器自定目录下。解压该文件。
### 配置
解压完成后,需要修改几处配置
```
source.type = standalone # 源节点的模式
source.address = 120.27.208.123:6379 # 源节点地址
source.password_raw = source_pass # 源节点访问密码
target.type = cluster # 目标节点模式
target.address = 127.0.0.1:6001;127.0.0.1:6002;127.0.0.1:6003 # 目标节点(集群)主节点ip:port
target.password_raw = target_pass # 目标节点访问密码
```
### 执行
配置文件修改完成后,执行启动指令
`./redis-shake/redis-shake.linux -type=sync -conf=./redis-shake/redis-shake.conf`

**上图中展示的是全量迁移,即已有数据的迁移。**

**上图中展示的是增量迁移,即实时产生的数据的迁移。**
等待返回日志中writeBytes对应值连续多次为0时,使用++Ctrl+C++组合键停止运行Redis-shake。
---
至此,源目标和新建目标的数据完全一致。可以切换上述Redis实例了。