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