您可以使用redis-sync-manager将自建Codis集群迁移至云数据库Redis版。

前提条件

  • 需要在环境变量$PATH中定义redis-port,因为redis-sync-manager在运行过程中会依赖于redis-port。
  • 运行时需要注意Cluster的基本数据及当前并发度可能会占用的内存。
  • 说明 本文使用的迁移工具redis-sync-manager仅支持自建Codis集群迁移到云数据库Redis版,不支持自建数据库之间的数据同步。

工具下载

redis-sync-manager

使用说明

使用redis-sync-manager进行Codis集群迁移上云的命令如下:

./redis-sync-manager --fromlist=addr_list --target=dst_host:dst_port [--password=src_password]  [--auth=dst_password] [--rewrite] [--bigkeysize=SIZE] [--sync-parallel=INT]

工作原理

redis-sync-manager根据addr_list提供的待同步分片IP:PORT列表。调用redis-port进行数据同步(全量数据同步的并发度依赖--sync-parallel配置,所有分片的增量数据均会保持同步)。相关参数请参见下表。

表 1. redis-sync-manager设置说明
参数 说明
addr_list 自建Codis集群所有分片列表,格式为ip1:port1,ip2:port2,ip3:port3
src_password 自建Codis的密码
dst_host 云数据库Redis版连接地址
dst_port 云数据库Redis版端口
dst_password 云数据库Redis版密码
rewrite 覆盖已经写入的Key。
bigkeysize=SIZE 当写入value的大于SIZE 时,采用大key写入模式。
--logfile=REDISPORT.LOG 传递日志文件名称,对于不同的分片,程序会自动添加地址后缀。默认为logs/redis-sync-manager.log
--pidfile=REDISPORT.PID 传递pid文件名称,对于不同的分片,程序会自动添加地址后缀。默认为logs/redis-sync-manager.pid
--httpport=HTTPPORT 传递监听端口的初始值,按照程序内调度redis-port的启动顺序,端口号依次加1。默认初始值为16000
--sync-parallel=INT 用于支持数据同步的并发度,展示可能占据的内存。默认为1

运行Demo