1、持久化rdb文件迁移
1.持久化设置css
2.将dump.rdb拷贝到要迁移服务器的redis工做目录,保证迁移服务器的redis服务是关闭状态。
3.启动服务器redis服务,若是数据量大,时间稍长。
4.查看redis是否已导入(命令)
>INFO
2、第三方工具redis-dump
1.安装java
2.导出和导入数据redis
3.查看INFO
注意:rubygems在Linux系统5.8不能使用
3、第三方工具crs-port(腾讯云)
1.下载
https://www.qcloud.com/doc/product/239/%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%85%A5
2.解压安装,可直接使用数据库
#!/bin/bash export LC_ALL="zh_CN.UTF-8" date=`date +%Y%m%d` num=`ls /data/game/|wc -l` for ((i=1; i<=${num}; i++)) do gameid=`ls /data/game/|awk NR==$i` redisIp=`grep "redisIp" /data/game/${gameid}/conf/env.properties|awk -F= '{print $2}'` redispwd=`grep "redispwd" /data/game/${gameid}/conf/env.properties|awk -F= '{print $2}'` if [ ! -d /data/bakup/ ];then mkdir -p /data/bakup/ fi crs-port dump -n 16 -f ${redisIp}:6379 -P ${redispwd} -o /data/bakup/${gameid}.${date}.rdb if [ $? -eq 0 ];then echo -e "\033[35ms${gameid}备份完毕\033[0m" else echo -e "\033[33ms${gameid}备份失败,请检查\033[0m" exit 0 fi done crs-port dump -n 16 -f ${redisIp}:6379 -P ${redispwd} -o /data/bakup/${gameid}.${date}.rdb 参数说明 -n[并发数] 该值建议取源Redis服务的CPU总核数的2倍到4倍 -f 源Redis服务的IP和端口 -P 源Redis服务的密码,如无密码不指定该参数便可 -o 目标CRS实例的路径
3.可直接将rdb文件redis数据库json
#crs-port restore -n 16 -i /data/dump.rdb -t localhost:6379 -A passwd 参数说明 -n[并发数] 该值建议取源Redis服务的CPU总核数的2倍到4倍 -i 指定导入文件所在路径 -t 要导入的目标CRS实例的IP和端口 -A 目标CRS实例的连接密码
4.crs注意事项
使用工具前须要清空目标CRS实例,不然会报错
5.其余功能——热迁移
ruby
#crs-port sync -n 16 -f 127.0.0.1:6379 -P pwd -t 10.10.1.100:6379 -A passwd 参数说明 -n[并发数] 该值建议取源Redis服务的CPU总核数的2倍到4倍 -f 源Redis服务的IP和端口 -P 源Redis服务的密码,如无密码不指定该参数便可 -t 要导入的目标CRS实例的IP和端口 -A 目标CRS实例的连接密码
注意:在导入的过程当中若是有关于key的报错,请将此键删除,从新导入。bash