設定 Azure Cache for Redis 實例的數據持續性

Redis 持續性 可讓您儲存儲存在快取實例中的數據。 如果發生硬體故障,快取實例會在回到在線時,與持續性檔案中的數據解除凍結。 保存數據的能力是提升快取實例持久性的重要方式,因為所有快取數據都會儲存在記憶體中。 如果快取節點關閉時發生失敗,可能會遺失數據。 持續性應該是使用 Azure Cache for Redis 的高可用性和災害復原 策略的關鍵部分。

警告

如果您在 進階版 層上使用持續性,請檢查記憶體帳戶在使用資料持續性功能之前是否已啟用虛刪除。 使用資料持續性搭配虛刪除會導致儲存成本變得非常高。 如需詳細資訊,請參閱 我是否應該啟用虛刪除?

警告

企業和企業 Flash 層上的 AOF 持續性一律寫入選項設定為 2025 年 4 月 1 日淘汰。 已不再建議使用此選項具有顯著的效能限制。 建議改為使用每秒寫入選項或使用 RDB 持續性。

可用性範圍

基本、標準 進階 Enterprise、Enterprise Flash
可用的 No Yes 是 (預覽)

Redis 中的數據持續性類型

您有兩個選項可保存 Azure Cache for Redis: Redis 資料庫 (RDB) 格式和 [僅附加檔案 ] (AOF) 格式:

  • RDB 持續性 - 當您使用 RDB 持續性 時,Azure Cache for Redis 會以二進位格式保存快取的快照集。 快照集會儲存在 Azure 儲存體 帳戶中。 可設定的備份頻率會決定保存快照集的頻率。 如果發生同時停用主要和複本快取的災難性事件,則會使用最新的快照集自動重新建構快取。 深入瞭解 RDB 持續性的優點缺點
  • AOF 持續性 - 當您使用 AOF 持續性 時,Azure Cache for Redis 會將每個寫入作業儲存至記錄。 記錄檔會在 Azure 儲存體 帳戶中每秒至少儲存一次。 如果發生同時停用主要和復本快取的災難性事件,則會使用預存寫入作業自動重新建構快取。 深入瞭解 AOF 持續性的優點缺點

Azure Cache for Redis 持續性功能是用來在數據遺失後自動還原至相同的快取。 RDB/AOF 儲存的數據檔無法匯入至新的快取或現有的快取。 若要跨快取行動數據,請使用匯 入和匯出 功能。 如需詳細資訊,請參閱 在 Azure Cache for Redis 中匯入和導出數據。

若要產生任何可新增至新快取的數據備份,您可以使用定期匯出數據的 PowerShell 或 CLI 撰寫自動化腳本。

先決條件與限制

持續性功能是用來將數據還原至數據遺失之後的相同快取。

  • RDB/AOF 儲存的數據檔無法匯入至新的快取或現有的快取。 請改用 匯入/匯出 功能。
  • 使用 被動異地復 寫或 主動異地復寫的快取不支持持續性。
  • 進階版 層上,多個復本不支援 AOF 持續性。
  • 進階版 層上,數據必須保存至與快取實例位於相同區域中的記憶體帳戶。
  • 進階版 層上,如果受控識別用來連線到記憶體帳戶,則不同訂用帳戶中的記憶體帳戶可用來保存數據。

進階版 與企業層中的持續性差異

進階版 層上,數據會直接保存至您擁有和管理的 Azure 儲存體 帳戶。 Azure 儲存體 在保存數據時自動加密數據,但您也可以使用自己的金鑰進行加密。 如需詳細資訊,請參閱適用於 Azure 儲存體加密的客戶自控金鑰

警告

如果您在 進階版 層上使用持續性,請檢查記憶體帳戶在使用資料持續性功能之前是否已啟用虛刪除。 使用資料持續性搭配虛刪除會導致儲存成本變得非常高。 如需詳細資訊,請參閱 我是否應該啟用虛刪除?

Enterprise 和 Enterprise Flash 層上,數據會保存至直接連結至快取實例的受控磁碟。 無法設定或存取使用者的位置。 使用受控磁碟會增加持續性的效能。 磁碟預設會使用 Microsoft 受控金鑰 (MMK) 加密,但也可以使用客戶管理的密鑰 (CMK)。 如需詳細資訊,請參閱 管理數據加密

如何使用 Azure 入口網站 設定數據持續性

  1. 若要建立 進階版 快取,請登入 Azure 入口網站,然後選取 [建立資源]。 您可以在 Azure 入口網站 中建立快取。 您也可以使用 Resource Manager 範本、PowerShell 或 Azure CLI 來建立它們。 如需建立 Azure Cache for Redis 的詳細資訊,請參閱 建立快取

    顯示建立 Azure Cache for Redis 資源的表單螢幕快照。

  2. 在 [ 建立資源] 頁面上,選取 [資料庫 ],然後選取 [Azure Cache for Redis]。

    此螢幕快照顯示選取為新資料庫類型的 Azure Cache for Redis。

  3. 在 [ 新增 Redis 快 取] 頁面上,設定新進階快取的設定。

    設定 建議的值 描述
    DNS 名稱 輸入全域唯一名稱。 快取名稱必須為介於 1 到 63 個字元之間的字串,而且只能包含數字、字母或連字號。 名稱的開頭和結尾必須是數字或字母,且不可包含連續的連字號。 快 取實例的主機名\<DNS name>.redis.cache.windows.net
    訂用帳戶 下拉式清單並選取您的訂用帳戶。 這個新的 Azure Cache for Redis 執行個體建立所在的訂用帳戶。
    資源群組 下拉式清單並選取資源群組,或選取 [ 新建 ],然後輸入新的資源組名。 用來建立快取和其他資源的資源群組名稱。 將所有的應用程式資源放在一個資源群組中,您將可輕鬆地一併管理或刪除這些資源。
    地點 下拉式清單並選取位置。 選取其他要使用快取之服務附近的區域
    快取類型 下拉式清單並選取進階快取來設定進階功能。 如需詳細資訊,請參閱 Azure Cache for Redis 定價 快取的可用大小、效能和功能取決於定價層。 如需詳細資訊,請參閱 Azure Cache for Redis 概觀
  4. 選取 [網路] 索引標籤,或選取頁面底部的 [網路] 按鈕。

  5. 在 [網路功能] 索引標籤中,選取您的連線方法。 針對進階快取實例,您可以透過公用IP位址或服務端點公開連線。 您可以使用私人端點私下連線。

  6. 選取 [ 下一步:進階 ] 索引標籤,或選取頁面底部的 [ 下一步:進階 ] 按鈕。

  7. 在進階快取實例的 [ 進階 ] 索引標籤中,設定非 TLS 連接埠、叢集和數據持續性的設定。 針對數據持續性,您可以選擇 RDBAOF 持續性。

  8. 若要啟用 RDB 持續性,請選取 [RDB ] 並設定設定。

    設定 建議的值 描述
    驗證方法 下拉式清單並選取驗證方法。 選擇是受控識別儲存體 金鑰 選擇您慣用的驗證方法。 使用 受控識別 可讓您在與快取所在的訂用帳戶不同的訂用帳戶中使用記憶體帳戶。
    訂用帳戶 下拉式清單並選取訂用帳戶。 如果您使用受控識別作為驗證方法,則可以選擇不同訂用帳戶中的記憶體帳戶。
    備份頻率 下拉式清單並選取備份間隔。 選項包括15分鐘、30分鐘60分鐘6小時12小時24小時 此間隔會在先前的備份作業成功完成之後開始倒數。 經過之後,就會啟動新的備份。
    儲存體帳戶 下拉式清單並選取您的記憶體帳戶。 在與快取相同的區域和訂用帳戶中選擇記憶體帳戶。 建議使用 進階儲存體 帳戶,因為它的輸送量較高。 此外,強烈建議您在記憶體帳戶上停用虛刪除功能,因為這會導致記憶體成本增加。 如需詳細資訊,請參閱價格和帳單
    儲存體 金鑰 下拉式清單並選擇要使用的 [主要金鑰] 或 [次要金鑰]。 如果重新產生持續性帳戶的記憶體金鑰,您必須從 [儲存體 金鑰] 下拉式清單中重新設定金鑰。

    第一個備份會在備份頻率間隔經過之後啟動。

    注意

    當 RDB 檔案備份至記憶體時,它們會以分頁 Blob 的形式儲存。 如果您使用已啟用 HNS 的記憶體帳戶,持續性通常會失敗,因為已啟用 HNS 的記憶體帳戶中不支援分頁 Blob(ADLS Gen2)。

  9. 若要啟用 AOF 持續性,請選取 AOF 並設定設定。

    設定 建議的值 描述
    驗證方法 下拉式清單並選取驗證方法。 選擇是受控識別儲存體 金鑰 選擇您慣用的驗證方法。 使用 受控識別 可讓您在與快取所在的訂用帳戶不同的訂用帳戶中使用記憶體帳戶。
    訂用帳戶 下拉式清單並選取訂用帳戶。 如果您使用受控識別作為驗證方法,則可以選擇不同訂用帳戶中的記憶體帳戶。
    第一個 儲存體 帳戶 下拉式清單並選取您的記憶體帳戶。 在與快取相同的區域和訂用帳戶中選擇記憶體帳戶。 建議使用 進階儲存體 帳戶,因為它的輸送量較高。 此外,強烈建議您在記憶體帳戶上停用虛刪除功能,因為這會導致記憶體成本增加。 如需詳細資訊,請參閱價格和帳單
    第一個 儲存體 鍵 下拉式清單並選擇要使用的 [主要金鑰] 或 [次要金鑰]。 如果重新產生持續性帳戶的記憶體金鑰,您必須從 [儲存體 金鑰] 下拉式清單中重新設定金鑰。
    第二個 儲存體 帳戶 (選擇性)下拉式清單並選取您的次要記憶體帳戶。 您可以選擇性地設定另一個記憶體帳戶。 如果已設定第二個記憶體帳戶,則寫入複本快取會寫入這個第二個記憶體帳戶。
    第二個 儲存體 鍵 (選擇性)下拉式清單並選擇要使用的 [主要金鑰] 或 [次要金鑰]。 如果重新產生持續性帳戶的記憶體金鑰,您必須從 [儲存體 金鑰] 下拉式清單中重新設定金鑰

    啟用 AOF 持續性後,快取的寫入作業會儲存至具名記憶體帳戶(或如果您已設定第二個記憶體帳戶的帳戶)。 如果發生重大失敗,會同時關閉主要和復本快取,則會使用儲存的 AOF 記錄檔來重建快取。

  10. 選取 [下一步: 標記] 索引標籤,或選取頁面底部的 [下一步: 標記] 按鈕。

  11. 在 [標記] 索引標籤中,如果您想要分類資源,可以選擇性地輸入名稱和值。

  12. 選取 [檢閱 + 建立]。 您會移至 [檢閱 + 建立] 索引標籤,Azure 會在其中驗證您的設定。

  13. 出現綠色的「通過驗證」訊息之後,請選取 [建立]

建立快取需要一些時間。 您可以在 Azure Cache for Redis 的 [概觀] 頁面上監視進度。 當 [狀態] 顯示為 [執行中] 時,表示快取已可供使用。

如何使用 PowerShell 和 Azure CLI 設定數據持續性

New-AzRedisCache 命令可用來使用數據持續性建立新的 進階版 層快取。 請參閱 RDB 持續性和 AOF 持續性範例

您可以使用 Set-AzRedisCache 命令來更新現有的快取。 請參閱將持續性新增至現有快取範例。

az redis create 命令可用來使用數據持續性建立新的 進階版 層快取。 例如:

az redis create --location westus2 --name MyRedisCache --resource-group MyResourceGroup --sku Premium --vm-size p1 --redis-configuration @"config_rdb.json"

您可以使用 az redis update 命令來更新現有的快取。 例如:

az redis update --name MyRedisCache --resource-group MyResourceGroup --set "redisConfiguration.rdb-storage-connection-string"="BlobEndpoint=https//..." "redisConfiguration.rdb-backup-enabled"="true" "redisConfiguration.rdb-backup-frequency"="15" "redisConfiguration.rdb-backup-max-snapshot-count"="1"

管理數據加密

由於 Redis 持續性會建立待用數據,因此加密此數據對許多使用者而言非常重要。 加密選項會根據所使用的 Azure Cache for Redis 層而有所不同。

使用 進階版 層時,數據會直接從快取實例串流至起始持續性時 Azure 儲存體。 各種加密方法可以搭配 Azure 儲存體 使用,包括 Microsoft 管理的密鑰、客戶管理的金鑰,以及客戶提供的密鑰。 如需加密方法的相關信息,請參閱 Azure 儲存體 待用數據的加密。

使用 Enterprise 和 Enterprise Flash 層時,數據會儲存在掛接至快取實例的受控磁碟上。 根據預設,保存持續性數據的磁碟會使用 Microsoft 管理的密鑰來加密 OS 磁碟。 客戶管理的金鑰 (CMK) 也可用來控制數據加密。 如需指示,請參閱 企業層快 取上的加密。

持續性常見問題

下列清單包含 Azure Cache for Redis 持續性常見問題的解答。

RDB 持續性

AOF 持續性

我可以在先前建立的快取上啟用持續性嗎?

是,您可以在快取建立和現有 進階版、企業或企業快取上設定持續性。

我可以同時啟用 AOF 和 RDB 持續性嗎?

否,您可以啟用 RDB 或 AOF,但不能同時啟用兩者。

持續性如何與異地復寫搭配運作?

如果您啟用數據持續性,則無法為您的快取啟用異地復寫。

我應該選擇哪一個持續性模型?

AOF 持續性會將每個寫入儲存至記錄,而這對輸送量有相當大的影響。 比較 AOF 與 RDB 持續性,這會根據設定的備份間隔儲存備份,對效能的影響最小。 如果您的主要目標是將數據遺失降至最低,請選擇 AOF 持續性,而且您可以處理快取的輸送量較低。 如果您想要在快取上維持最佳輸送量,但仍想要有數據復原的機制,請選擇 RDB 持續性。

如需使用 AOF 持續性時效能的詳細資訊,請參閱 AOF 持續性會影響快取的輸送量、延遲或效能嗎?

AOF 持續性會影響快取的輸送量、延遲或效能嗎?

AOF 持續性會影響輸送量。 AOF 會在主要和複本程式上執行,因此您會看到具有 AOF 持續性之快取的 CPU 和伺服器負載高於沒有 AOF 持續性的相同快取。 AOF 提供記憶體中數據的最佳一致性,因為每個寫入和刪除只會保存幾秒鐘的延遲。 取捨是 AOF 更需要大量計算。

只要 CPU 和伺服器負載都小於 90%,輸送量就會受到懲罰,但快取的運作正常,否則為 。 超過 90% 的 CPU 和伺服器負載,輸送量會降低很多,而且快取處理的所有命令延遲都會增加。 延遲會增加,因為 AOF 持續性會在主要和複本進程上執行、增加使用中節點上的負載,並將持續性放在數據的重要路徑上。

如果我已調整為不同的大小,而且在調整作業之前還原備份,會發生什麼情況?

針對 RDB 和 AOF 持續性:

我可以在兩個不同的快取之間使用相同的記憶體帳戶來保存嗎?

否,您必須針對不同的快取使用不同的記憶體帳戶。 每個快取都必須有自己的記憶體帳戶,才能設定持續性。

重要

使用個別的記憶體帳戶進行持續性,並在快取上執行定期匯出作業。

我是否需要支付數據持續性中使用的記憶體費用?

  • 針對 進階版 快取,您必須針對所使用記憶體帳戶的定價模式所使用的記憶體付費。
  • 針對 Enterprise 和 Enterprise Flash 快取,您不需要支付受控磁碟記憶體的費用。 價格中包括它。

RDB 和 AOF 持續性寫入 Blob 的頻率,以及我是否應該啟用虛刪除?

建議您避免在搭配 azure Cache for Redis 數據持續性與 進階版 層搭配使用時,在記憶體帳戶上啟用虛刪除。 RDB 和 AOF 持續性可以像每小時、每隔幾分鐘或每秒一樣頻繁地寫入 Blob。 此外,在記憶體帳戶上啟用虛刪除表示 Azure Cache for Redis 無法藉由刪除舊的備份數據來將記憶體成本降到最低。

虛刪除會隨著快取的典型數據大小而變得昂貴,而快取也會每秒執行寫入作業。 如需虛刪除成本的詳細資訊,請參閱 定價和計費

我可以在建立快取之後變更 RDB 備份頻率嗎?

是,您可以使用 Azure 入口網站、CLI 或 PowerShell 來變更 RDB 持續性的備份頻率。

當我有 60 分鐘的 RDB 備份頻率時,備份之間為何有 60 分鐘以上的時間?

在先前的備份程式成功完成之前,RDB 持續性備份頻率間隔不會啟動。 如果備份頻率為 60 分鐘,且備份程式需要 15 分鐘才能完成,則下一個備份在上一次備份的開始時間之後 75 分鐘才會啟動。

建立新的備份時,舊的 RDB 備份會發生什麼事?

除了最近的一個備份之外,所有 RDB 持續性備份都會自動刪除。 此刪除可能不會立即發生,但較舊的備份不會無限期保存。 如果您使用 進階版 層進行持續性,且已針對記憶體帳戶開啟虛刪除,則會套用虛刪除設定,而現有的備份會繼續處於虛刪除狀態。

何時應該使用第二個記憶體帳戶?

當您認為快取上的設定作業高於預期時,請使用 AOF 持續性的第二個記憶體帳戶。 設定次要記憶體帳戶有助於確保您的快取無法達到記憶體頻寬限制。 此選項僅適用於 進階版 層快取。

如何移除第二個記憶體帳戶?

您可以將第二個記憶體帳戶設定為與第一個記憶體帳戶相同,以移除 AOF 持續性次要記憶體帳戶。 針對現有的快取,請從快取的 [資源] 功能表存取數據持續性。 若要停用 AOF 持續性,請選取 [已停用]。

什麼是重寫,以及它如何影響我的快取?

當 AOF 檔案變大時,重寫會自動排入快取上的佇列。 重寫會使用建立目前數據集所需的最少作業集來調整 AOF 檔案的大小。 在重寫期間,您可以預期更快達到效能限制,尤其是在處理大型數據集時。 當 AOF 檔案變大時,重寫頻率較低,但需要相當長的時間才會發生。

啟用 AOF 調整快取時,我應該期待什麼?

如果調整時的 AOF 檔案很大,則預期縮放作業會花費超過預期的時間,因為它會在調整完成之後重載檔案。

如需調整的詳細資訊,請參閱 如果我已調整為不同的大小,而且在調整作業之前還原備份,會發生什麼情況?

我的 AOF 資料如何組織在記憶體中?

當您使用 進階版 層時,儲存在 AOF 檔案中的數據會分割成每個分區的多個分頁 Blob。 根據預設,一半的 Blob 會儲存在主要記憶體帳戶中,而一半則儲存在次要記憶體帳戶中。 將數據分割成多個分頁 Blob 和兩個不同的記憶體帳戶會增加效能。

如果寫入快取的尖峰速率不高,則可能不需要此額外的效能。 在此情況下,可以移除次要記憶體帳戶組態。 所有的 AOF 檔案只會儲存在單一主要記憶體帳戶中。 下表顯示每個定價層所使用的分頁 Blob 總數:

進階層 Blob
P1 每個分區8個
P2 每個分區 16 個
P3 每個分區 32 個
P4 每個分區 40 個

啟用叢集時,快取中的每個分區都有自己的分頁 Blob 集,如上表所示。 例如,具有三個分區的 P2 快取會將其 AOF 檔案分散到 48 個分頁 Blob:每個分區有 16 個 Blob,具有三個分區。

重寫之後,記憶體中有兩組 AOF 檔案。 重寫會在背景發生,並附加至第一組檔案。 設定作業,在重寫期間傳送至快取,並附加至第二組。 如果發生失敗,則會在重寫期間暫時儲存備份。 在重寫完成之後,系統會立即刪除備份。 如果您的記憶體帳戶開啟虛刪除,則會套用虛刪除設定,而現有的備份會繼續處於虛刪除狀態。

記憶體帳戶上的防火牆例外狀況會影響持續性嗎?

使用受控識別會將快取實例新增至 受信任的服務清單,讓防火牆例外狀況更容易執行。如果您不是使用受控識別,而是使用密鑰授權記憶體帳戶,則記憶體帳戶上的防火牆例外狀況通常會中斷持續性程式。 這隻適用於 進階版 層中的持續性。

如果我有多個復本,是否可以啟用 AOF 持續性?

使用 進階版 層,您無法使用具有多個複本的僅限附加檔案 (AOF) 持續性。 在 Enterprise 和 Enterprise Flash 層中,複本架構比較複雜,但在區域備援部署中使用企業快取時,支援 AOF 持續性。

如何? 檢查我的記憶體帳戶是否已啟用虛刪除?

選取快取用於持續性的記憶體帳戶。 從 [資源] 功能選取 [數據保護 ]。 在工作窗格中,檢查 [啟用 Blob 虛刪除] 的狀態。 如需 Azure 記憶體帳戶中虛刪除的詳細資訊,請參閱 為 Blob 啟用虛刪除。

下一步

深入了解 Azure Cache for Redis 功能。