Redis單實例數據遷移到集群


遷移步驟:

1)停掉項目,停止對redis單實例的數據寫入。

2)登錄單實例redis客戶端通過命令keys *查看當前單實例緩存的所有數據條數,記錄下來。

3)假如單實例redis同時開啟了RDB和AOF,只要AOF文件就可以了,因為當AOF和RDB同時存在的時候,Redis還是會先加載AOF文件的,在單實例redis上執行BGREWRITEAOF保存數據,如果沒有開啟AOF只開了RDB則執行SAVE,SAVE 命令執行完之后會返回OK。

本項目的Redis只開了RDB,故執行save

 

4)先把集群的所有slot分配到一個主節點

查看集群當前卡槽分配情況

# /opt/redis-4.0.10/src/redis-trib.rb check 192.168.8.238:6381

>>> Performing Cluster Check (using node 192.168.8.238:6381)

M: bb3536e32589f063563b2dfb8572151a05615e5d 192.168.8.238:6381

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

M: 603335a86d29cadbd5823b046be09594d115f16a 192.168.8.238:6383

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

S: 9fec5d7d62ee564e2f4ee1e293891a86ea21b05b 192.168.8.238:6385

   slots: (0 slots) slave

   replicates 603335a86d29cadbd5823b046be09594d115f16a

M: a5a1858f829423dc42703f6340dcdc48f9381d55 192.168.8.238:6382

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

S: b2da0f647af50dadc93ddf08093a36507cc2ec29 192.168.8.238:6384

   slots: (0 slots) slave

   replicates bb3536e32589f063563b2dfb8572151a05615e5d

S: 5302abfb43ca2efe12dc04903b3c8225f119d0e2 192.168.8.238:6386

   slots: (0 slots) slave

   replicates a5a1858f829423dc42703f6340dcdc48f9381d55

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

 

 

 

可以看到192.168.8.238:6381分配的卡槽是10923-16383

 

192.168.8.238:6383分配的卡槽是5461-10922

 

192.168.8.238:6382分配的卡槽是0-5460

 

我們現在要將192.168.8.238:6383192.168.8.238:6381的卡槽遷移到192.168.8.238:6382上面去

 

先將192.168.8.238:6383的卡槽遷移到192.168.8.238:6382

# /opt/redis-4.0.10/src/redis-trib.rb reshard 192.168.8.238:6381

該過程會先讓你輸入遷出多少個卡槽,然后輸入遷到哪個卡槽再輸入從哪遷

 

 

 

同上將192.168.8.238:6381的卡槽遷移到192.168.8.238:6382

都遷移完成后所有的槽位都會在192.168.8.238:6382上

可以用一下命令查看

# /opt/redis-4.0.10/src/redis-trib.rb check 192.168.8.238:6381

 

 

5)因為本項目Redis采用的是RDB持久化,所以把單實例的數據備份dump.rdb文件拷貝到192.168.8.238:6381的數據目錄里,重啟192.168.8.238:6381,然后登錄該節點客戶端通過keys *查看總條數跟之前記錄的總條數對比看是否全部遷移過來,如果有全部遷移即可。

 

6)參照步驟(4)把遷移出來的slot都按原路遷移回去,數據遷移就完成了。

 

三、參考資料:

單實例redis數據遷移到集群參考

https://www.cnblogs.com/zphqq/p/11315852.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM