使用RedisShake工具離線遷移其他云廠商Redis Cluster集群
更新時間 2024-11-24 16:40:10
最近更新時間: 2024-11-24 16:40:10
分享文章
本文介紹使用RedisShake工具離線遷移其他云廠商Redis Cluster集群。
RedisShake基本介紹
RedisShake是一個開源的Redis遷移工具,可以用于在線遷移和離線遷移(通過備份文件導入)。
目前 RedisShake 有三種遷移模式:PSync、RDB 和 SCAN,分別對應 sync_reader、rdb_reader 和 scan_reader。主要有以下三種數據遷移場景:
- 對于從備份rdb中恢復數據的場景,可以使用 rdb_reader。
- 對于數據遷移場景,優先選擇 sync_reader。
- 對于全量復制的場景下或者自研集群不支持 PSync 協議情況下,可以使用 scan_reader。
當你需要遷移部署在其他云廠商上的 Redis 集群數據時,如果無法進行在線遷移,你可以選擇離線遷移的方式。
離線遷移(備份文件導入)
與在線遷移相比,離線遷移適宜于源實例與目標實例的網絡無法連通的場景。
1、在DCS控制臺創建緩存實例。
注意新創建的Redis實例容量不能小于源端Redis實例的實際使用容量。
2、準備一臺云服務器,并安裝RedisShake。
RedisShake既能訪問源端緩存實例,也能訪問目標端DCS 緩存,需要綁定彈性公網IP
3、導出RDB文件。
使用如下命令導出RDB文件:
./redis-cli -h {redis_address} -p {redis_port} -a {password} --rdb {output.rdb}
執行命令后回顯"Transfer finished with success.",表示文件導出成功。
4、將導出的RDB文件(含多個)上傳到云服務器上。
5、編輯RedisShake配置文件。
編輯redis-shake工具配置文件shake.toml,補充遷移雙方信息,及遷移模式。
[rdb_reader]
filepath = "/tmp/dump.rdb"
[redis_writer]
cluster = false # set to true if target is a redis cluster
address = "ip:port" # when cluster is true, set address to one of the cluster node
username = "" # keep empty if not using ACL
password = "" # keep empty if no authentication is required
tls = false
6、在線遷移,同步數據。
使用如下命令同步源Redis集群和目標Redis集群數據:
./redis-shake shake.toml
執行日志中出現如下信息,代表同步完成:
all done
7、遷移后驗證。
數據同步結束后,可使用redis-cli工具連接DCS 實例,通過dbsize查看Key數量,確認數據是否完整導入。
如果數據不完整,可使用flushall或者flushdb命令清理實例中的緩存數據后重新同步。
8、清理RedisShake配置文件。