從地端 Redis server / Redis cluster 遷移到 雲端 ElastiCache 的四種方式
通常redis 是用來做cache ,但是隨著各種應用野蠻而自由的發展,或者說濫用,redis 現在已經快要變成一個存儲everything 的database,比如wordpress 的object-cache plugin 就會把所有的posts 都丟進去,很多的遊戲廠商則有頻繁刷新的board/score ,以及各種遊戲人物的屬性。
對雲端平台而言,以AWS 為例,從地端遷移redis 大概有這樣四種方式:
- rdb 文件從地端server dump 出來,上傳到S3,然後再從ElastiCache 服務來調用S3 上的rdb 文件進行恢復。
- ElastiCache 提供了在線遷移的方式,雖然官方文件上說支持在EC2 上架設的redis server,但實際上,只要你的網速夠快,你的redis 在哪裡都沒所謂,只要是自建的redis server 都可以,或者是支持CONFIG/SYNC/PSYNC/SLAVEOF 命令的第三方服務商。
- RIOT 是redis 官方推出的工具,大概是遷移需求實在是呼聲太高,而總是使用第三方的工具來遷移,似乎顯得redis 官方不作為。
- 開源的 redis-shake ,在實時同步方面被廣泛採用。這個工具需要調用源端的 sync/psync 命令,而這些命令在AWS/Azure/GCP 中都是被禁用的,如果源在雲端,則需要開立技術支持工單來啟用他們之後,才可以使用redis-shake。



