redis到codis的数据迁移

目的

本文档适用于redis到codis的数据迁移。文档附带迁移程序。迁移前请确保需要部署的业务程序(如商城)的缓存访问方式已从redis更新到codis。目前有两种方式来迁移缓存:
 

  1. 自动同步:适用于迁移程序可同时访问到redis和codis服务的情景,无需下线原有的redis业务程序,可等到同步程序部署完成后,逐台更新部署业务程序,并下线所有redis服务;
     
  2. 手动导入:适用于迁移程序无法同时访问到redis和codis服务的情景,为防止迁移过程中丢失数据,需要先下线所有的redis业务程序,等手动导入完成后,再下线redis服务,重新部署业务程序。

 

自动同步(推荐)

通过redis-sync同步程序,实时同步redis数据到codis。使用方法如下:

 

  1. redis-sync程序上传到可同时访问到Redis和codis的服务器上;

    redis到codis的数据迁移_第1张图片
  2. 获取redis-sync程序执行权限:chmod u+x redis-sync;
    redis到codis的数据迁移_第2张图片
  3. 运行redis-sync程序:nohup ./redis-sync --ncpu=2 --master=192.168.142.182:6379 --target=192.168.142.186:19000 > redis-to-codis-6379.log  2>&1 &
     查看日志,无报错和异常情况下会不断输出同步信息
    redis到codis的数据迁移_第3张图片
    说明:
    --ncpu 参数:最大使用 CPU 个数,请按机器实际情况配置
    --master参数:redis master的IP和端口号, 若有多个redis master 请修改该参数分别运行多个redis-sync
    --target参数:codis proxy的IP和端口号,集群环境可选任意一个proxy
    > redis-to-codis-6379.log 输出的日志文件名,建议后缀设置为redis master的端口号,以区分不同redis master的日志文件;
  4. 逐台更新部署访问方式已从redis迁移到codis的相关业务程序(如商城);
  5. 停掉所有redis服务, redis下线时,reids-sync 链接会断开,自动退出同步,完成数据迁移。

手动导入

如果同步程序无法同时访问到redis和codis服务,可使用redis-dump和redis-restore程序手动进行迁移,使用该方式请确保所有访问redis服务的业务程序已下线。使用方法如下:

 

  1. redis-dump程序上传到可访问到redis的服务器上;
  2. 获取redis-dump程序执行权限:chmod u+x redis-dump;
  3. 运行redis-dump程序:./redis-dump --ncpu=2 --master=192.168.142.182:6379 --output=save-6379.rdb
    redis到codis的数据迁移_第4张图片
    说明:
    --ncpu 参数:最大使用 CPU 个数,请按机器实际情况配置;
    --master参数:redis master的IP和端口号, 若有多个redis master,请修改该参数分别运行多个redis-dump
    -- output参数:从redis中导出的数据文件名,建议后缀设置为redis master的端口号,以区分不同redis master导出的文件。
  4. redis-restore程序上传到可访问到codis的服务器上;
  5. 获取redis-restore程序执行权限:chmod u+x redis-restore;
  6. 拷贝所有redis数据导出文件(.rdb)到当前服务器
  7. 运行redis-restore程序:./redis-restore --ncpu=2 --input=save-6379.rdb --target=192.168.142.186:19000

    说明:
    --ncpu 参数:最大使用 CPU 个数,请按机器实际情况配置;
    -- input参数:从redis中导出的数据文件名,若有多个,请修改该参数执行多次redis-restore
    --target参数:codis proxy的IP和端口号,集群环境可选任意一个proxy
  8. 更新部署相关业务程序(如商城),完成数据迁移。

你可能感兴趣的:(JAVA)