遷移至 Azure Cache for Redis
本文說明一些方法,可將內部部署或另一個雲端服務中執行的現有 Redis 快取,移轉至 Azure Cache for Redis。
移轉案例
開放原始碼 Redis 可以在許多計算環境中執行。 常見的範例包括:
- 內部部署 - 在私人資料中心執行的 Redis 快取。
- 雲端式 VM - 在諸如 Azure VM、AWS EC2 上執行的 Redis 快取。
- 裝載服務 - 受控 Redis 服務,例如 AWS ElastiCache。
如果您有這類快取,您可以將其移至 Azure Cache for Redis,其中斷或停機時間最少。
如果您想要從一個 Azure 區域移至另一個區域,建議您參閱將 Azure Cache for Redis 執行個體移至不同區域一文。
移轉選項
您可以透過不同的方式,從一個快取切換到另一個快取。 根據快取的位置以及您的應用程式與其互動的方式,其中一個方法會比其他方法更有用。 以下詳述一些常用的移轉策略。
選項 | 優點 | 缺點 |
---|---|---|
建立新快取 | 最簡單的實作方式。 | 需要將資料重新填入至新的快取,這可能無法與許多應用程式搭配使用。 |
透過 RDB 檔案匯出和匯入資料 | 通常與任何 Redis 快取相容。 | 如果某些資料在產生 RDB 檔案之後寫入現有的快取,可能會遺失。 |
雙重寫入資料至兩個快取 | 沒有資料遺失或停機時間。 現有快取的未中斷作業。 更容易測試新的快取。 | 需要兩個快取一段延長的時間。 |
以程式設計方式移轉資料 | 完全控制資料的移動方式。 | 需要自訂程式碼。 |
建立新的 Azure Cache for Redis
這種方法在技術上不是移轉。 如果遺失資料不是考慮的因素,最簡單的移至 Azure Cache for Redis 方式就是建立快取執行個體,並將您的應用程式連線到其中。 例如,如果您使用 Redis 做為資料庫記錄的另行快取,您可以輕鬆地從頭重建快取。
實作此選項的一般步驟如下:
建立 Azure Cache for Redis 執行個體。
您可以選擇性地試用新的 Azure 受控 Redis(預覽版)。
更新應用程式以使用新的執行個體。
刪除舊的 Redis 執行個體。
將資料匯出至 RDB 檔案,並將其匯入 Azure Cache for Redis
開放原始碼 Redis 會定義標準機制,以擷取快取記憶體內部資料集的快照集,並將其儲存至檔案。 此檔案稱為 RDB,可由另一個 Redis 快取讀取。 Azure Cache for Redis 進階層支援透過 RDB 檔案將資料匯入快取執行個體。 您可以使用 RDB 檔案,將資料從現有的快取傳輸到 Azure Cache for Redis。
重要
RDB 檔案格式可以在 Redis 版本之間變更,而且可能無法維持回溯相容性。 您所匯出快取的 Redis 版本應該等於或小於 Azure Cache for Redis 所提供的版本。
實作此選項的一般步驟如下:
在進階層中建立新的 Azure Cache for Redis 執行個體,其大小與現有快取相同 (或大於)。
儲存現有 Redis 快取的快照集。 您可以設定 Redis 定期儲存快照集,或使用 SAVE 或 BGSAVE 命令手動執行程序。 RDB 檔案預設會命名為「dump.rdb」,且位於 redis.conf 設定檔中指定的路徑。
注意
如果您要在 Azure Cache for Redis 內移轉資料,請參閱有關如何匯出 RDB 檔案的指示或改用 PowerShell 匯出 Cmdlet。
將 RDB 檔案複製到新快取所在區域中的 Azure 儲存體帳戶。 您可以使用 AzCopy 執行此工作。
使用這些匯入指示 或 PowerShell 匯入 Cmdlet,將 RDB 檔案匯入至新的快取。
更新應用程式以使用新的執行個體。
在移轉期間同時寫入兩個 Redis 快取
除了直接在快取之間移動資料,您也可以使用應用程式將資料寫入現有快取,以及您要設定的新快取。 應用程式一開始仍會從現有的快取讀取資料。 當新的快取具有必要的資料時,請將應用程式切換至該快取,並淘汰舊的快取。 例如,假設您使用 Redis 作為工作階段存放區,而應用程式工作階段有效期為七天。 寫入兩個快取一周之後,您可以確定新的快取包含所有未過期的工作階段資訊。 您可以從那時起放心地依賴它,而不需要擔心資料遺失。
實作此選項的一般步驟如下:
在進階層中建立新的 Azure Cache for Redis 執行個體,其大小與現有快取相同 (或大於)。
修改應用程式程式碼,以同時寫入新的和原始執行個體。
繼續從原始執行個體讀取資料,直到新執行個體已填入足夠資料為止。
將應用程式程式碼更新為只從新執行個體讀取和寫入。
刪除原始執行個體。
以程式設計方式移轉
您可以藉由程式設計方式從現有的快取讀取資料,並將其寫入 Azure Cache for Redis,以建立自訂移轉程序。 此開放原始碼工具可用來將資料從某個 Azure Cache for Redis 執行個體複製到另一個。 編譯的版本也可供使用。 您也可以發現原始程式碼是您在撰寫自己的移轉工具的實用指南。
注意
Microsoft 未正式支援此工具。
實作此選項的一般步驟如下:
在現有快取所在的區域中建立 VM。 如果您的資料集很大,請選擇相對強大的 VM 以減少複製時間。
建立 Azure Cache for Redis 執行個體。
從新的快取排清資料,以確保它是空的。 這是必要步驟,因為複製工具本身不會覆寫目標快取中的任何現有索引鍵。
重要
請務必不要從來源快取排清。
使用上述開放原始碼工具之類的應用程式,自動將資料從來源快取複製到目標。 請記住,複製程序可能需要一段時間才能完成,視資料集的大小而定。
下一步
深入了解 Azure Cache for Redis 功能。