传统运维 - redis迁移

2021-08-26

https://github.com/alibaba/RedisShake

配置文件如下:

source.type: 源redis的类型,支持以下4种类型:
  standalone: 单db节点/主从版模式。如果源端是从多个db节点拉取就选择这个模式,即便是codis等开源的proxy-db架构。
  sentinel: sentinel模式。
  cluster: 集群模式。开源的cluster。对于阿里云来说,用户目前无法拉取db的地址,所以此处只能是proxy。
  proxy: proxy模式。如果是阿里云redis的集群版,从proxy拉取/写入请选择proxy,从db拉取请选择cluster。正常cluster到cluster同步源端请选择cluster模式,proxy模式目前只用于rump。
source.password_raw:源redis的密码。
target.type: 目的redis的类型,与source.type一致。注意,目的端如果是阿里云的集群版,类型请填写proxy,填写cluster只会同步db0。
target.address:目的redis的地址。从1.6版本开始我们支持集群版,不同的类型对应不同的地址。 standalone模式,参见source.address。
  sentinel模式,需要填写sentinel_master_name@sentinel_cluster_address。sentinel_master_name表示sentinel配置下master的名字,sentinel_cluster_address表示sentinel的单节点或者集群>地址,其中集群地址以分号(;)分割。例如:mymaster@127.0.0.1:26379;127.0.0.1:26380
  cluster模式,参见source.address。
  proxy模式下,填写proxy的地址,如果是多个proxy,则round-robin循环负载均衡连接,保证一个源端db连接只会对应一个proxy。如果是阿里云的集群版请选择这种模式。
  target.password_raw:目的redis的密码。

类型可以是以下之一:

  • decode:将转储的有效载荷解码为人类可读的格式(十六进制编码)。
  • restore:将 RDB 文件恢复到目标 redis。
  • dump : 从源 redis 转储 RDB 文件。
  • sync:通过syncpsync命令将数据从源redis 同步到目标redis 。包括全量同步和增量同步。
  • rump : 通过scan命令将数据从源redis同步到目标redis 。只支持全同步。此外,当scan源端不支持命令时,RedisShake 还支持从输入文件中的给定键中获取数据。这种模式通常在不支持syncpsyncredis 命令时使用

启动命令

./redis-shake.linux  -type=sync -conf=redis-shake.conf