共用方式為


從基本、標準、進階和企業層移轉至 Azure 受控 Redis

本文解釋為什麼以及如何將 Azure Cache for Redis(包括基本、標準、高級和企業層級)移轉至 Azure 管理型 Redis。

您瞭解:

  • 選擇 Azure 托管 Redis 優於先前等級的優點。
  • 服務之間的主要功能差異。
  • 移轉快取資料的策略。
  • 確保移轉程序順利進行的方法。
  • 針對您需求選取正確的 Azure 受控 Redis SKU 和效能層的指引。
  • 更新用戶端應用程式的考量和建議。

無論您使用的是基本、標準、進階,還是企業或 OSS 層,本指南都可協助您規劃和執行移轉至 Azure 受控 Redis。

該文件分為兩個部分。 一個是關於企業實例。 另一個是關於 Azure Cache for Redis 的基本、標準與進階服務層級。

從企業移至 Azure 受控 Redis 的優點

Azure 受控 Redis 是以進階 Redis Enterprise 軟體為基礎所建置。 Azure 受控 Redis 是 Azure 第一方供應專案,這表示不涉及 Azure Marketplace 元件,而且使用者不需要個別與 Marketplace 進行交易。 您可以佈建、管理和支付 Azure 受控 Redis 的費用,就像任何其他原生 Azure 服務或產品一樣。

Azure Managed Redis 不需要「仲裁節點」,這會導致資源使用率不足,並限制可提供 Azure Cache for Redis Enterprise 的區域或雲端。 Azure 受控 Redis 現在可在大多數 Azure 區域使用,並計劃在其他主權雲中得到支持。 如需有關仲裁節點的詳細資訊,請參閱 Enterprise 和 Enterprise Flash 服務層級 (部分機器翻譯)。 透過移除未使用的 仲裁節點,您可以獲得更高的成本效益,因為所有節點都可以用作資料節點。

Azure Managed Redis 預設具備區域備援功能。

您可以在開發和測試環境中使用沒有高可用性 (HA) 的 Azure 受控 Redis。 使用沒有 HA 的非生產環境可將執行個體的成本減半。

Azure 受控 Redis 的 SKU 結構是根據您的記憶體和效能需求而定。 您可以從 Azure 受控 Redis 中的三個效能層級中選擇,而不是像在 Azure Cache for Redis Enterprise 中那樣管理擴充比例或容量。 如需詳細資訊,請參閱 選擇正確的層

最後,Azure Managed Redis 會在您建立快取時提供 Microsoft Entra ID 驗證,以改善工作負載的安全性態勢。

特徵比較

特徵 / 功能 Azure Cache for Redis Enterprise Azure Managed Redis
Redis 版本 7.2 7.4
叢集原則 OSS、企業 OSS、企業、非叢集
Geo-replication Active Active
SLA 最多99.999% 最多99.999%
區域備援 Yes *是,具有高可用性
非 HA 模式 No 是 (開發/測試)
資料持續性 是 (預覽版) Yes
調整大小 Yes Yes
TLS 版本支援 1.2,1.3 1.2,1.3
Microsoft Entra ID 驗證 No Yes
Azure 區域支援 限制 廣泛的
Azure 主權雲端支援 No 是(即將推出)
主機名稱 DNS 尾碼 <name>.<region>.redisenterprise.cache.azure.net <name>.<region>.redis.azure.net

* 啟用 高可用性 時,Azure 託管 Redis 在具有多個可用性區域的區域中具備區域備援功能。

從企業移至 Azure 受控 Redis 時的考量

Azure 受控 Redis 使用與適用於 Redis Enterprise 的 Azure 快取相同的軟體堆疊,因此使用 Enterprise 層的現有應用程式不需要太多變更。 重要的例外是需要更改連接憑據。

不同的主機名稱和後綴

雖然 Azure Cache for Redis Enterprise 和 Azure 受控 Redis 的核心軟體類似,但 Redis 叢集主機名稱的 DNS 尾碼不同。 當您移至 Azure 受控 Redis 時,您的應用程式必須變更 Redis 叢集主機名稱。 如果您使用存取金鑰連線到快取,則也必須更新它用來連線到快取的存取金鑰。

這很重要

請考慮更新連線到快取的程式碼。 不要使用存取金鑰,請使用 Microsoft Entra ID。 建議您使用 Microsoft Entra ID,而不是存取金鑰。

選擇合適的 Azure 託管 Redis 大小和 SKU

Azure 受控 Redis 提供許多記憶體大小和三個效能層。 您可以在這裡閱讀有關記憶體大小和效能層的詳細資訊 選擇正確的層

確認現有 Azure Cache for Redis Enterprise 執行個體的記憶體大小

Azure Cache for Redis Enterprise 執行個體可以擴增以提供更多記憶體與計算資源,因此請務必注意快取的擴增因數。 橫向擴展也與容量有關,容量本質上是叢集執行的虛擬機器數量。

若要選擇正確的 Azure 受管理 Redis 記憶體大小:

  1. 移至 Azure 入口網站,然後從資源功能表中選取 [ 概觀 ]。
  2. 檢查你的 Enterprise 執行個體<企業實例>的 概覽 中的狀態欄位。 「 狀態」 欄位會顯示 Redis Enterprise 執行個體的記憶體大小。

讓我們看看一個可能的情況。

企業快取概觀的螢幕擷取畫面。

查看概觀窗格中的狀態,您會看到執行中 - 企業用 8GB (2 x 4GB)。 此表示法表示快取目前使用規模為 2 的 E5 Enterprise SKU,產生 8 GB 快取。 因此,您應該在 Azure 托管 Redis 上配置至少 10GB 的快取。

在此情況下,請使用任何提供 12 GB 記憶體的層級。

SKU
M10 號 記憶體最佳化
B10 Balanced
X10 計算最佳化

識別效能層

您也應該考慮您的工作負載是記憶體密集型還是運算密集型。 如果您目前的 Enterprise 執行個體更有可能在 CPU 之前耗盡記憶體,則您的工作負載會佔用大量記憶體。 請考慮從 記憶體最佳化 效能層中進行選擇。

如果您的工作負載輸送量密集或延遲過多,則您的工作負載是運算密集型。 請考慮從 計算最佳化 效能層中進行選擇。

如果您不確定,可以從 平衡 效能層開始,因為它提供記憶體和效能的健康組合。

如果您目前使用 Redis Enterprise Flash 層,則應選擇 Flash 最佳化層。

建立新的 Azure 受控 Redis 執行個體

選擇新 Azure 受控 Redis 執行個體的記憶體和效能層之後,您可以建立新的 Azure 受控 Redis 執行個體。 如需建立快取的詳細資訊,請參閱 快速入門:建立 Azure 受控 Redis 執行個體

接下來,您需要選擇移動資料的策略。 最後,您需要更新應用程式以使用新的快取。

更新應用程式以連線到 Azure 受控 Redis 執行個體

建立新的 Azure 受控 Redis 執行個體之後,您必須變更應用程式中的 Redis 端點/主機名稱和存取金鑰,以指向新的 Azure 受控 Redis 執行個體。 我們建議您在上班時間外發佈此端點變更,因為它會導致連線中斷。

Note

如果您透過私人端點連線到現有的 Redis Enterprise 執行個體,請確保您的新的 Azure 受控 Redis 快取也配對至應用程式的虛擬網路。 新快取必須具有與現有 Redis Enterprise 執行個體類似的設定。

確認您的應用程式如預期般執行,然後刪除先前的 Redis Enterprise 執行個體。

將資料從企業快取移至新的 Azure 受控 Redis 快取

移轉至 Azure 受控 Redis 執行個體時,您必須考慮將資料從現有的 Redis Enterprise 執行個體移至新的 Azure 受控 Redis 執行個體的最佳方式。 如果您的應用程式可以容忍資料遺失,或有其他機制來重新載入快取而不會產生負面影響,則您可以略過此步驟並直接進入後續步驟。

如果您的應用程式需要確保資料也移轉至新的 Azure 受控 Redis 執行個體,請選擇下列其中一個選項:

使用 RDB 檔案匯出和匯入資料

  • 優點:保留資料快照。
  • 缺點:如果在快照後進行寫入,則有資料遺失的風險。

以下是基本的匯出/匯入程序:

  1. 將 RDB 從現有的 Redis Enterprise 快取匯出至您的 Azure 儲存體帳戶。
  2. 將資料從 Azure 儲存體帳戶匯入新的 Azure 受控 Redis 快取。
  3. 在此處閱讀更多有關資料匯出/匯入的資訊 在 Azure 受控 Redis 中資料的匯入和匯出

雙重寫入策略

  • 優點:零停機時間,安全過渡。
  • 缺點:需要臨時雙快取設定。

以下是基本的雙重寫入過程:

  1. 修改您的應用程式,以寫入現有的 Azure Cache for Redis 企業快取和新的 Azure 受控 Redis 快取。
  2. 繼續從 Redis Enterprise 快取讀取和寫入。
  3. 在足夠的資料同步之後,將讀取切換至 Azure Managed Redis 並刪除 Redis Enterprise 執行個體

使用 RIOT-X 的程式化移轉

RIOT-X 提供將內容從企業移轉至 Azure 受控 Redis 的方法。 如需詳細資訊,請參閱 使用 Azure 受控 Redis 的 RIOT-X 進行資料移轉

  • 優點:完全控制,可自訂。
  • 缺點:需要開發工作。

從基本、標準或進階快取移至 Azure Managed Redis 的優點

如果您使用任何 OSS SKU (基本、標準或進階),則移至 Azure Managed Redis 會在每個層級快取為您提供更多功能。

下表比較了 Azure Cache for Redis 的功能與 Azure 受控 Redis 中的功能

功能描述 基本
開放源碼
標準
開放源碼
進階
開放源碼
Balanced
AMR
記憶體最佳化
AMR
計算最佳化
AMR
Availability N/A 99.9% 99.9% 最多99.999% 最多99.999% 最多99.999%
傳輸中資料加密 Yes Yes Yes Yes Yes Yes
網路隔離 Yes Yes Yes Yes Yes Yes
擴大/擴增 Yes Yes Yes Yes Yes Yes
縮小/縮減 Yes Yes Yes No No No
OSS 叢集 No No Yes Yes Yes Yes
資料持續性 No No Yes Yes Yes Yes
區域備援 No 是 (預覽) Yes *是,具有高可用性 *是,具有高可用性 *是,具有高可用性
Geo-replication No No 是(被動) 是 (主動) 是(作用中) 是(作用中)
連線稽核記錄 No No Yes Yes(Event-based) Yes(Event-based) Yes(Event-based)
Redis 模組 No No No Yes Yes Yes
匯入/匯出 No No Yes Yes Yes Yes
Reboot Yes Yes Yes No No No
預定更新 Yes Yes Yes No No No
Microsoft Entra ID 驗證 Yes Yes Yes Yes Yes Yes
Microsoft Entra ID RBAC Yes Yes Yes No No No
Keyspace 通知 Yes Yes Yes No No No
非高可用性 N/A No No Yes Yes Yes

OSS 指的是 Azure Cache for Redis
AMR 是指 Azure 受控 Redis

* 啟用 高可用性 時,Azure 託管 Redis 在具有多個可用性區域的區域中具備區域備援功能。

以下是實作 Azure 受控 Redis 時要考慮的其他一些差異。 請考慮下列用戶端應用程式變更:

功能描述 Azure Cache for Redis Azure Managed Redis
DNS 尾碼 (僅適用於 PROD 雲端) .redis.cache.windows.net <region>.redis.azure.net
TLS 連接埠 6380 10000
非 TLS 連接埠 6379 不支援
個別節點 TLS 連接埠 13XXX號 85xx
個別節點非 TLS 連接埠 15XXX號 不支援
叢集支援 OSS 叢集模式 OSS 和企業叢集模式
不支援的命令 不支援的命令 多鍵命令
區域可用性 所有 Azure 區域 * 請參閱本節之後的區域清單。
Redis 版本 6 7.4
支援的 TLS 版本 1.2 和 1.3 1.2 和 1.3

將基本、標準或進階快取移轉至 Azure 受控 Redis

根據表格,以下是 Azure Cache for Redis SKU 與 Azure Managed Redis 中快取選項之間的一些對應。

Note

使用 Azure Managed Redis 的非高可用性選項來移轉基本 SKU

Azure Cache for Redis Azure Managed Redis 額外記憶體 (%)
基本/標準 - C0 平衡 - B0 50
基本/標準 - C1 平衡 - B1 0
基本/標準 - C2 平衡 - B3 17
基本/標準 - C3 平衡 - B5 0
基本/標準 - C4 記憶體最佳化 - M10* -8
基本/標準 - C4 記憶體最佳化 - M20** 46
基本/標準 - C5 記憶體最佳化 - M20* -8
基本/標準 - C5 記憶體最佳化 - M50** 57
基本/標準 - C6 記憶體最佳化 - M50 12
進階 - P1 平衡 - B5 0
進階 - P2 平衡 - B10* -8
進階 - P2 平衡 - B20** 46
進階 - P3 平衡 - B20* -8
進階 - P3 平衡 - B50** 57
進階 - P4 平衡 - B50 12
進階 - P5 平衡 - B100 0
  • * 此選項是為了提高成本效益。 請確定過去一個月使用的記憶體總數尖峰值小於建議的 Azure Managed Redis 記憶體,再選擇此選項。
  • ** 此選項適用於記憶體使用量較大的情況。

Azure Cache for Redis 進階 (叢集模式)

  • 針對分區化叢集,請選擇具有同等記憶體總數的記憶體最佳化階層。
  • 針對具有多個讀取複本的叢集,請選擇具有同等記憶體總數的計算最佳化階層作為主要複本。

移轉選項

用戶端應用程式應能使用具有不同叢集模式和端點的 Azure Managed Redis 執行個體。 Azure Cache for Redis 和 Azure Managed Redis 相容,因此大多數案例不需要連線設定以外的應用程式程式代碼變更。

深入了解:

將 Azure Cache for Redis 移轉至 Azure Managed Redis 的選項

Option Advantages Disadvantages
建立新快取 最簡單的實作方式。 需要將資料重新填入至新的快取,這可能無法與許多應用程式搭配使用。
透過 RDB 檔案匯出和匯入資料 通常與任何 Redis 快取相容。 如果某些資料在產生 RDB 檔案之後寫入現有的快取,可能會遺失。
雙重寫入資料至兩個快取 沒有資料遺失或停機時間。 現有快取的未中斷作業。 更容易測試新的快取。 需要兩個快取一段延長的時間。
以程式設計方式移轉資料 完全控制資料的移動方式。 需要自訂程式碼。

建立一個新的 Azure Managed Redis 實例

這種方法在技術上不是移轉。 如果資料遺失不是問題,最簡單的方法是建立一個新的快取實例,並將您的應用程式連接到 Azure 管理的 Redis 層。 例如,如果您使用 Redis 做為資料庫記錄的另行快取,您可以輕鬆地從頭重建快取。 實作此選項的一般步驟如下:

  1. 建立新的 Azure Managed Redis 執行個體。
  2. 更新應用程式以使用新的執行個體。
  3. 刪除舊的 Azure Cache for Redis 執行個體。

將資料匯出至 RDB 檔案,並將其匯入到 Azure Managed Redis

此選項僅適用於進階階層的快取。 開放原始碼 Redis 會定義標準機制,以擷取快取記憶體內部資料集的快照集,並將其儲存至檔案。 另一個 Redis 快取可以讀取匯出的 RDB 檔案。 Azure Cache for Redis 進階層支援透過 RDB 檔案從快取執行個體匯出資料。 您可以使用 RDB 檔案將資料從現有的 Azure Cache for Redis 執行個體傳輸到 Azure Managed Redis 執行個體。

實作此選項的一般步驟如下:

  1. 建立等於 (或大於) 現有 Azure Cache for Redis 執行個體大小的新 Azure Managed Redis 執行個體。
  2. 使用這些匯出指示PowerShell 匯出 Cmdlet,從現有的 Azure Cache for Redis 執行個體匯出 RDB 檔案
  3. 使用這些匯入指示或 PowerShell 匯入 Cmdlet,將 RDB 檔案匯入到新的 Azure Managed Redis 執行個體
  4. 更新您的應用程式以使用新的 Azure Managed Redis 執行個體連接字串。

在移轉期間同時寫入兩個 Redis 快取

除了直接在快取間移動資料,您也可以使用應用程式將資料寫入現有的快取,或您要設定的新快取。 應用程式一開始仍會從現有的快取讀取資料。 當新的快取具有必要的資料時,請將應用程式切換至該快取,並淘汰舊的快取。 例如,假設您使用 Redis 作為工作階段存放區,而應用程式工作階段有效期為七天。 寫入到兩個快取一周之後,您就可以確定新的快取會包含所有未過期的工作階段資訊。 您可以從那時起放心地依賴它,而不需要擔心資料遺失。

實作此選項的一般步驟如下:

  1. 建立等於 (或大於) 現有 Azure Cache for Redis 執行個體大小的新 Azure Managed Redis 執行個體。
  2. 修改應用程式程式碼,以同時寫入新的和原始執行個體。
  3. 繼續從原始執行個體讀取資料,直到新執行個體已填入足夠資料為止。
  4. 將應用程式程式碼更新為只從新執行個體讀取和寫入。
  5. 刪除原始執行個體。

以程式設計方式移轉

以程式設計方式從現有的 Azure Cache for Redis 執行個體讀取資料,並將其寫入到 Azure Managed Redis 執行個體,以建立自訂移轉流程。 有兩個可以嘗試的開放原始碼工具:

  • Redis-copy
    • 此開放原始碼工具可用來將資料從某個 Azure Cache for Redis 執行個體複製到另一個。 此工具適用於在不同 Azure 快取區域中的快取執行個體之間移動資料。 編譯的版本也可供使用。 您也會發現原始程式碼是用於撰寫自己的移轉工具的實用指南。
  • RIOT
    • RIOT 是經過 Redis 社群測試的另一個熱門移轉工具。 這個命令列公用程式的設計目的是協助您在 Redis 中放入和取出資料。

Note

Microsoft 未正式支援此工具。

實作此選項的一般步驟如下:

  1. 在現有快取所在的區域中建立 VM。 如果您的資料集很大,請選擇相對強大的 VM 以減少複製時間。
  2. 建立新的 Azure Managed Redis 執行個體。
  3. 從新的快取排清資料,以確保它是空的。 這是必要步驟,因為複製工具本身不會覆寫目標快取中的任何現有索引鍵。 重要事項:請務必不要從來源快取排清。
  4. 使用先前所述的開放原始碼工具之類的應用程式,自動將資料從來源快取複製到目標。 請記住,複製程序可能需要一段時間才能完成,視資料集的大小而定。

Azure Managed Redis 的區域可用性

Azure Managed Redis 會持續擴充到新的區域。 若要確認各區域中是否可提供,請參閱依區域提供的產品