舊redis: redis
192.168.1.204 192.168.1.205 分別存放着不一樣的key服務器
redis-cluster:app
Master:192.168.1.200 192.168.1.202 192.168.1.203ide
Slave: 192.168.1.206 192.168.1.207 192.168.1.208spa
模擬redis離線遷移,即須要先斷開全部客戶端請求3d
1、準備舊redis:orm
1.修改配置文件,指定AOF文件路徑blog
dir /etc/redis/ //修改redis的工做目錄文檔
appendfilename "appendonly.aof" //會在工做目錄中生成aof文件get
2. 準備key
3. 導出key爲AOF文件
BGREWRITEAOF
2、準備redis-cluster:
1.修改配置文件,指定AOF文件路徑
dir /etc/redis/
2. 建立redis-cluster
3. 關閉redis-cluster,替換AOF文件
204節點的AOF文件替換200節點
205節點的AOF文件替換202節點
4. 重啓redis-cluster
5. 執行修復操做
redis-trib.rb fix192.168.1.200:6379 //指定集羣內的任一節點便可
redis-trib.rb check 192.168.1.200:6379 //檢查集羣狀態
6. 遷移結果
注:
1. 使用此方法,新的redis-cluster中的master節點要大於等於舊redis-master節點的數量
2. 官方文檔中,建議在新建redis-cluster的時候先不要建立slave節點,導入數據後再建立slave節點。能夠使用redis-trib.rbcreate --replicas 0 192.168.1.200:6379 192.168.1.202:6379192.168.1.203:6379 來建立只有3個master節點的redis-cluster
遷移方法二:
redis-trib.rb import --from 192.168.1.204:6379192.168.1.200:6379
redis-trib.rb import --from 192.168.1.205:6379192.168.1.200:6379
//直接使用腳本,分別從兩臺舊redis服務器導入key到集羣中,同時會清除舊redis服務器的全部key
注:
1.使用--copy 選項能夠保存舊redis上的key
2.使用--replace 選項能夠替換集羣中相同名稱的key,若是不使用,此類key不會被導入
3.若是舊redis的版本是2.8的,導入速度會很慢,能夠先把該redis升級爲3.0以上再執行命令導入
4.遷移數據前記得先導出並備份AOF文件