分布式缓存Redis

使用RedisShake工具离线迁移其他云厂商Redis Cluster集群

2024-05-21 03:32:21

RedisShake基本介绍

RedisShake是一个开源的Redis迁移工具,可以用于在线迁移和离线迁移(通过备份文件导入)。

目前 RedisShake 有三种迁移模式:PSyncRDB  SCAN,分别对应 sync_readerrdb_reader  scan_reader。主要有以下三种数据迁移场景:

1. 对于从备份rdb中恢复数据的场景,可以使用 rdb_reader

2. 对于数据迁移场景,优先选择 sync_reader

3. 对于全量复制的场景下或者自研集群不支持 PSync 协议情况下,可以使用 scan_reader

当你需要迁移部署在其他云厂商上的 Redis 集群数据时,如果无法进行在线迁移,你可以选择离线迁移的方式。

离线迁移(备份文件导入)

与在线迁移相比,离线迁移适宜于源实例与目标实例的网络无法连通的场景。

1、在DCS控制台创建缓存实例。

注意新创建的Redis实例容量不能小于源端Redis实例的实际使用容量。

2、准备一台云服务器,并安装RedisShake

RedisShake既能访问源端缓存实例,也能访问目标端DCS 缓存,需要绑定弹性公网IP

3、导出RDB文件

使用如下命令导出RDB文件:

./redis-cli -h {redis_address} -p {redis_port} -a {password} --rdb {output.rdb}

执行命令后回显"Transfer finished with success.",表示文件导出成功。

4、将导出的RDB文件(含多个)上传到云服务器上

5、编辑RedisShake配置文件。

编辑redis-shake工具配置文件shake.toml,补充迁移双方信息,及迁移模式

[rdb_reader]

 

filepath = "/tmp/dump.rdb"

 

[redis_writer]

 

cluster = false            # set to true if target is a redis cluster

 

address = "127.0.0.1:6380" # when cluster is true, set address to one of the cluster node

 

username = ""              # keep empty if not using ACL

 

password = ""              # keep empty if no authentication is required

 

tls = false

6、在线迁移,同步数据

使用如下命令同步源Redis集群和目标Redis集群数据:

./redis-shake shake.toml

\

执行日志中出现如下信息,代表同步完成:

all done

RedisShake在线迁移示意图

7、迁移后验证

数据同步结束后,可使用redis-cli工具连接DCS 实例,通过dbsize查看Key数量,确认数据是否完整导入。

如果数据不完整,可使用flushall或者flushdb命令清理实例中的缓存数据后重新同步。

8、清理RedisShake配置文件


3r7EvU79t3FI