承接上文,接下來我們就來探討一下Azure Redis的遷移問題,Redis本身是提供持久化的方法的,如AOF和RDB,但是在Azure Redis中,AOF和RDB都是隻有Premium版本才支持的功能!所以對於standard和basic的redis來說,需要能有一種更通用的遷移方式,微軟官方並沒有官宣提供Azure Redis遷移的工具,但是redis團隊的一名大佬還是自己寫了一個開源的遷移工具,這次就拿來給大家分享一下!
這個工具本身也是公開在Github上的,以下是Github的地址,我們可以在這裏下載到遷移工具
此方法比較適合Azure跨Region遷移,比如講一個region的redis遷移到另外一個region,下邊來介紹下這個工具如何使用
首先來介紹下實驗環境:
1.Azure Redis Standard, region chinanorth,原地址
2.Azure Redis Standard, region chinanorth,目標地址
3.工作用laptop一個
實驗環境很簡單,首先先在之前的地址上下載遷移工具
在上一節當中,我們已經使用隨機數據生成程序,批量生成了200多萬條數據,可以通過dbsize來查看
2.可以看到redis遷移工具下載完成後,主要包含以下內容
3.想要遷移的話很簡單,運行redis-copy命令即可
.\redis-copy.exe --se mxyredis.redis.cache.chinacloudapi.cn --sa J****= --de mxyredis2.redis.cache.chinacloudapi.cn --da***
命令格式也很簡單,只需要輸入原地址,原服務器的key,目標地址,目標服務器的key即可
4. 命令行工具遷移時不會有輸出信息,但是在目標redis可以看到數據量一直在增加
5.查看本機的資源監視器,可以看到本機和兩臺redis都有連接,而且進出都有流量,這意味着,這個工具的原理是先把數據從原redis下載到本地,然後再上傳到目標redis!並不是直接服務器對服務器直傳的,所以這也代表,遷移的速度會受制於運行遷移工具的機器,所以想要速度快一些的話,最好在Azure上創建VM來運行腳本!實驗也發現,通過公網的傳輸確實速度相對較慢,一小時才傳輸了不到1G數據
6.傳輸完成
7.可以看到兩個節點數據是一致的了!遷移也就完成了
當然,需要注意的是,這個工具本身並不支持增量,再次運行的話還會把所有數據全部copy一次,不得不說,美中不足