目的
如何把一個redis單節點的數據遷移到 redis集群中
方案:
使用命令redis-cli --cluster import 導入數據至集群
--cluster-from <arg>--cluster-from-user <arg> 數據源用戶--cluster-from-pass <arg> 數據源密碼--cluster-from-askpass--cluster-copy #migrate時指定類型為copy--cluster-replace #migrate時指定類型為replace
命令如下:
redis-cli --cluster import -a cc 192.168.100.32:9001 --cluster-from 192.168.100.32:6379 --cluster-copy --cluster-replace
- 外部Redis實例(192.168.100.32:6379)的數據導入到集群中
- –cluster-replace 如果集群(192.168.100.32:9001)中存在外部redis實例(192.168.100.32:6379)的key,則192.168.100.32:6379會覆蓋掉(192.168.100.32:9001)中的value
- –cluster-copy 默認情況下,import 命令在向集群導入數據的同時,還會刪除單機服務器中源數據。如果用戶想要保留單機服務器中的數據,那么可以在執行命令的同時給定 --cluster-copy 選項
遷移數據量驗證:
單節點 key數量1000:
集群key 數量1000:
至此數據實現平滑遷移。
數據覆蓋驗證
集群數據準備
數據源準備:
遷移驗證:
確定 目標集群的key的值已經被覆蓋。