如果要換多數是經濟因素啦~
一、 准備工作
先在華為雲上買一台redis數據庫,配置一定要注意多數要保持一致,至於4.0還是5.0倒問題不大親測兼容
可用區要找現有ECS雲主機中的相同的機器。記下:這台雲主機ECS的基本公網ip和密碼、新的redis的連接串和密碼。
在阿里雲上的原redis數據庫創建一個有“復制”權限的賬號、記下賬號密碼和原redis的賬號密碼
二、配置華為雲主機ECS上的nginx以達到公網訪問內網redis數據庫
安裝Nginx
買了ECS后,需要在ECS上安裝Nginx。
- 執行以下命令,添加Nginx到yum源。
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 添加完之后,執行以下命令,查看是否已經添加成功。
yum search nginx
- 添加成功之后,執行以下命令,安裝Nginx。
sudo yum install -y nginx
- 啟動Nginx並設置為開機自動運行。
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
- 在本地瀏覽器中輸入服務器地址(ECS公網IP地址),查看安裝是否成功。
如果出現下面頁面,則表示安裝成功。
配置Nginx
Nginx安裝后,需要配置請求轉發規則,告訴Nginx哪個端口收到的請求,應該轉發到后端哪個Redis實例。
- 修改配置文件。
cd /etc/nginx
vi nginx.conf
配置示例如下,如果有多個redis實例需要公網連接,可以配置多個server,在proxy_pass中配置Redis實例連接地址。
stream { server { listen 8080; proxy_pass 192.168.0.5:6379; } server { listen 8081; proxy_pass 192.168.0.6:6379; } }
圖4 Nginx配置 - 重啟Nginx服務。
service nginx restart
- 驗證啟動是否成功。
netstat -an|grep 808
圖5 啟動Nginx及驗證8080和8081兩個端口都在監聽狀態,Nginx啟動成功。
通過Nginx訪問Redis
- 登錄虛擬私有雲控制台,確認跳板機的安全組規則是否放開,如果沒有,則需要為安全組放開8080和8081兩個端口。
圖6 添加安全組入方向規則
- 在公網環境中打開Redis命令行界面,輸入如下命令,登錄與查詢都正常,大功告成。
./redis-cli -h {myeip} -p {port} -a {mypassword}
其中,命令中的{myeip}為主機連接地址,需要填寫ECS的彈性IP,端口需要填寫ECS上Nginx的監聽端口。
如下圖所示,設置的2個監聽端口分別為8080和8081,對應后端2個Redis實例。
圖7 通過Nginx代理連接第一個Redis實例圖8 通過Nginx代理連接第二個Redis實例至此,就完成了通過跳板機的搭建,實現公網訪問Redis4.0和Redis5.0的操作了。
三、下載使用阿里雲同步工具redis-shake
Redis-shake的sync(同步)模式支持全量數據遷移和增量數據遷移,可實現同一或不同阿里雲賬號下Redis實例間的數據遷移。
前提條件
Redis實例 | 需滿足的條件 |
---|---|
源Redis實例 |
|
目標Redis實例 |
Redis-shake介紹

注意事項
- 如果目標庫的數據逐出策略(maxmemory-policy)配置為noeviction以外的值,可能導致目標庫的數據與源庫不一致。關於數據逐出策略詳情,請參見Redis數據逐出策略介紹。
- 如果源庫中的某些Key使用了過期(expire)機制,由於可能存在Key已過期但未被及時刪除的情形,所以在目標庫中查看(如通過info命令)到的Key數量會比源庫的Key數量少。
說明 源和目標庫中,未設置過期機制或未過期的Key數量是一致的。
適用場景
- 跨阿里雲賬號實例間遷移
- 同一阿里雲賬號實例間遷移
操作步驟

四、檢查服務是否正常
略
參考:
https://help.aliyun.com/document_detail/117311.html?spm=a2c4g.11186623.6.653.344f3b69KaDUif
https://support.huaweicloud.com/bestpractice-dcs/dcs-bp-0514001.html