2016-09-14 75 views
0

我有多個redis實例。我使用不同的端口創建了一個集羣。現在我想將預先存在的redis實例中的數據傳輸到集羣。我知道如何將數據從一個實例傳輸到羣集,但是當實例數量多於一個時,我無法做到這一點。將數據從redis獨立實例移動到redis集羣

+0

我發現的最佳策略是使用redis-trib migrate命令。但是這會從獨立的redis實例中刪除數據。因此,您可以先創建redis獨立實例的從屬服務器,將其配置從只讀更改爲讀寫,然後使用redis-trib migrate命令而不丟失任何數據。無論如何感謝回覆 – user1973987

回答

0

您需要爲您的redis集羣定義某種分片策略。 Database Sharding所以基本上你需要有一定的一致的散列策略,它將決定你的集羣中的關鍵,碎片或redis實例密鑰將會去。您需要爲此數據遷移制定一個特定腳本,該腳本將包含羣集中所有redis實例的數組。

然後,對於從獨立redis中讀取的給定密鑰,您將使用散列機制從您之前維護的列表中找出分片索引或redis實例,並相應地將數據寫入羣集節點。我的所有假設都是你有一個內部redis集羣設置,而不是Redis Labs提供的設置。