redis在线快速迁移

公司的redis服务器key的数量以达到千万级别,需要对redis进行实例拆分并线上迁移redis数据。

之前公司用的迁移脚本是基于一个key一个key的,速度非常慢,脚本如下:

#!/bin/bash

#redis 源ip
src_ip=192.168.1.1
#redis 源port
src_port=6379

#redis 目的ip
dest_ip=192.168.1.1
#redis 目的port
dest_port=9379

#src redis pass
src_auth_pass=Idianyou_Redis6379

#dest redis pass
dest_auth_pass=Idianyou_Redis6379
#要迁移的key前缀
key_prefix=circle
#迁到那个db
dest_db=0

#设置ttl过期时间
TTL=0

i=1

Cmd=/zywa/redis/bin
Other_Cmd=/zywa/redis_9379/bin
$Cmd/redis-cli -h $src_ip -p $src_port -n 0 -a $src_auth_pass keys "${key_prefix}*" | while read key
do
    $Cmd/redis-cli -h $src_ip -p $src_port -n 0 -a $src_auth_pass --raw dump $key | perl -pe 'chomp if eof' | $Other_Cmd/redis-cli -h $dest_ip -p $dest_port  -a $dest_auth_pass -n $dest_db -x restore $key 0
    echo "$i migrate key $key"
    ((i++))
done

于是,通过查阅资料,最后决定使用唯品会开发的开源的redis迁移工具:redis-migrate-tool。该项目已在github上开源。一下称为RMT。

该工具的优势:

快速。
多线程。
基于redis复制。
实时迁移。
迁移过程中,源集群不影响对外提供服务。
异构迁移。
支持Twemproxy集群,redis cluster集群,rdb文件 和 aof文件。
过滤功能。
当目标集群是Twemproxy,数据会跳过Twemproxy直接导入到后端的redis。
迁移状态显示。
完善的数据抽样校

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值