在 Azure Cache for Redis 中匯入與匯出資料

使用 Azure Cache for Redis 中的匯入和匯出功能作為數據管理作業。 您可以使用 Azure Cache for Redis 資料庫 (RDB) 快照集將數據匯入快取實例,或從快取實例導出數據。 快照集是使用 Azure 儲存體 帳戶中的 Blob 匯入或匯出。

進階版、企業和企業 Flash 層支援 匯入/匯出:

  • 匯出 - 您可以將 Azure Cache for Redis RDB 快照集匯出至分頁 Blob(進階版 層)或區塊 Blob(企業層)。
  • 入 - 您可以從分頁 Blob 或區塊 Blob 匯入 Azure Cache for Redis RDB 快照集。

您可以使用 匯入/匯出 在不同的 Azure Cache for Redis 實例之間移轉,或在使用之前填入快取中的數據。

本文提供使用 Azure Cache for Redis 匯入和匯出數據的指南,並提供常見問題的解答。

可用性範圍

基本、標準 進階 Enterprise、Enterprise Flash
可用的 No .是 Yes

相容性

  • 數據會匯出為 進階版 層中的 RDB 分頁 Blob。 在 Enterprise 和 Enterprise Flash 層中,數據會匯出為.gz區塊 Blob。
  • 執行 Redis 4.0 的快取支援 RDB 8 版和更新版本。 執行 Redis 6.0 的快取支援 RDB 9 版和更新版本。
  • 從較新版本的 Redis 導出備份(例如 Redis 6.0)無法匯入舊版 Redis(例如 Redis 4.0)
  • 來自 進階版 層快取的 RDB 檔案可以匯入 EnterpriseEnterprise Flash 層快取。

Import

使用 import 從任何雲端或環境中執行的任何 Redis 伺服器帶入 Redis 相容的 RDB 檔案,包括在 Linux、Windows 上執行的 Redis,或任何雲端提供者,例如 Amazon Web Services 和其他。 匯入數據是使用預先填入數據建立快取的簡單方式。 在匯入程式期間,Azure Cache for Redis 會將 RDB 檔案從 Azure 記憶體載入記憶體,然後將密鑰插入快取中。

注意

開始匯入作業之前,請確定您的 Redis 資料庫 (RDB) 檔案或檔案會上傳至 Azure 記憶體中的分頁或區塊 Blob,與 Azure Cache for Redis 實例位於相同的區域和訂用帳戶中。 如果您使用受控識別進行驗證,記憶體帳戶可以位於不同的訂用帳戶中。 如需詳細資訊,請參閱 開始使用 Azure Blob 記憶體。 如果您使用 Azure Cache for Redis 匯出功能匯出 RDB 檔案,您的 RDB 檔案已儲存在分頁 Blob 中,且已準備好匯入。

重要

目前不支援從 Redis 企業層匯入至 進階版 層。

  1. 若要匯入一或多個導出的快取 Blob,請流覽至 Azure 入口網站 中的快取,然後從 [資源] 功能表中選取 [入數據]。 在工作窗格中,您會看到 [選擇 Blob], 您可以在其中找到 RDB 檔案。

    顯示 [資源] 功能選取 [匯入數據] 的螢幕快照。

  2. 選取 [ 選擇 Blob], 然後選取包含要匯入數據的記憶體帳戶。

    顯示記憶體帳戶清單的螢幕快照。

  3. 選取包含要匯入之數據的容器。

    顯示先前所選記憶體帳戶中容器清單的螢幕快照。

  4. 選取一或多個要匯入的 Blob,方法是選取 Blob 名稱左邊的區域,然後 選取 [選取]。

    顯示容器中 Blob 的螢幕快照。

  5. 選取 [ 入] 以開始匯入程式。

    重要

    快取客戶端在匯入程式期間無法存取快取,而且會刪除快取中的任何現有數據。

    顯示 [匯入] 按鈕以選取以開始匯入的螢幕快照。

    您可以遵循來自 Azure 入口網站 的通知,或檢視活動記錄中的事件,來監視匯入作業的進度。

    重要

    企業層尚未提供活動記錄支援。

    顯示通知區域中匯入進度的螢幕快照。

Export

匯出可讓您將儲存在 Azure Cache for Redis 中的數據匯出至 Redis 相容的 RDB 檔案。 您可以使用這項功能將數據從一個 Azure Cache for Redis 實例移至另一個或另一個 Redis 伺服器。 在匯出程式期間,會在裝載 Azure Cache for Redis 伺服器實例的 VM 上建立暫存盤。 然後,檔案會上傳至所選的記憶體帳戶。 當匯出作業以成功或失敗的狀態完成時,會刪除暫存盤。

  1. 若要將快取目前的內容匯出至記憶體,請流覽至 Azure 入口網站 中的快取,然後從 [資源] 功能表中選取 [匯出數據]。 您會在工作窗格中看到 [選擇 儲存體 容器]。

    顯示 [資源] 功能表中已選取 [導出數據] 的螢幕快照

  2. 選取 [選擇 儲存體 容器],並顯示可用的記憶體帳戶清單。 選取您想要的記憶體帳戶。 記憶體帳戶必須與快取位於相同的區域中。 如果您使用受控識別進行驗證,記憶體帳戶可以位於不同的訂用帳戶中。 否則,記憶體帳戶必須與快取位於相同的訂用帳戶中。

    重要

    • 匯出適用於傳統和 Resource Manager 記憶體帳戶所支援的分頁 Blob。
    • Azure Cache for Redis 不支持導出至 ADLS Gen2 儲存體帳戶。
    • Blob 記憶體帳戶目前不支持導出。
    • 如果您的快取數據匯出至已啟用防火牆的記憶體帳戶失敗,請參閱 如果我已在記憶體帳戶上啟用防火牆,該怎麼辦?

    如需詳細資訊,請參閱 Azure 儲存體帳戶概觀

    顯示工作窗格中容器清單的螢幕快照。

  3. 選擇您要保存導出的記憶體容器,然後選擇 [選取]。 如果您想要新的容器,請選取 [新增容器 ] 以先新增容器,然後從清單中選取它。

    已醒目提示容器清單和選取按鈕的螢幕快照。

  4. 輸入 Blob 名稱前置詞,然後選取 [導出] 以啟動匯出程式。 Blob 名稱前置詞是用來為這個導出作業所產生的檔名加上前置詞。

    顯示 Blob 名稱前置詞和 [導出] 按鈕的螢幕快照。

    您可以遵循來自 Azure 入口網站 的通知,或檢視稽核記錄中的事件,來監視匯出作業的進度。

    顯示通知區域中匯出進度的螢幕快照。

    快取在導出程式期間仍可供使用。

匯入/匯出 常見問題

本節包含 匯入/匯出 功能的常見問題。

哪一層支援 匯入/匯出?

導出功能僅適用於 進階版企業和企業 Flash 層。

我可以從任何 Redis 伺服器匯入資料嗎?

是,您可以匯入從 Azure Cache for Redis 實例匯出的數據。 您可以從任何雲端或環境中執行的任何 Redis 伺服器匯入 RDB 檔案。 環境包括Linux、Windows或雲端提供者,例如 Amazon Web Services。 若要匯入此數據,請從您想要的 Redis 伺服器將 RDB 檔案上傳至 Azure 儲存體 帳戶中的分頁或區塊 Blob。 然後,將其匯入進進階 Azure Cache for Redis 實例。

例如,您可能要:

  1. 從生產快取導出數據。

  2. 然後,將它匯入快取,作為測試或移轉預備環境的一部分。

重要

若要在使用分頁 Blob 時成功匯入從 Azure Cache for Redis 以外的 Redis 伺服器匯出的數據,分頁 Blob 大小必須在 512 位元組界限上對齊。 如需執行任何必要位元組填補的範例程式代碼,請參閱 範例分頁 Blob 上傳

我可以匯入哪些 RDB 版本?

如需與匯入搭配使用的支援 RDB 版本的詳細資訊,請參閱 相容性一節

我的快取是否可在 匯入/匯出 作業期間使用?

  • 匯出 - 快取仍可供使用,而且您可以在匯出作業期間繼續使用快取。
  • 入 - 匯入作業啟動時,快取會變成無法使用,並在匯入作業完成時可供使用。

我可以搭配 Redis 叢集使用 匯入/匯出 嗎?

是,您可以在叢集快取與非叢集快取之間匯入/匯出。 由於 Redis 叢集 僅支援資料庫 0,因此不會匯入 0 以外的任何資料庫中的數據。 匯入叢集快取數據時,索引鍵會在叢集的分區之間重新散發。

匯入/匯出 如何使用自訂資料庫設定?

某些定價層有不同的 資料庫限制,因此,如果您在快取建立期間設定自定義值 databases ,則匯入時會有一些考慮。

  • 匯入至定價層時,其限制低於 databases 您導出的定價層:
    • 如果您使用的預設數目 databases,即所有定價層的16個,則不會遺失任何數據。
    • 如果您使用的自定義數目 databases 落在您要匯入之階層的限制內,則不會遺失任何數據。
    • 如果您匯出的數據包含在超過新層限制的資料庫中,則不會匯入來自這些較高資料庫的數據。

匯入/匯出 與 Redis 持續性有什麼不同?

Azure Cache for Redis 持續性 功能主要是數據持久性功能。 相反地,匯 入/匯出 功能是設計為進行定期數據備份以進行時間點復原的方法。

設定持續性,快取會根據可設定的備份頻率,將數據快照集保存至磁碟。 數據會以 Redis 專屬的二進位格式寫入。 如果發生同時停用主要和復本快取的災難性事件,則會使用最新的快照集自動還原快取數據。

數據持續性是針對災害復原所設計。 它不是作為時間點復原機制。

  • 在 進階版 層上,數據持續性檔案會儲存在 Azure 儲存體 中,但無法將檔案匯入不同的快取。
  • 在企業層上,數據持續性檔案會儲存在無法存取使用者的掛接磁盤中。

如果您想要針對時間點復原進行定期數據備份,建議您使用 匯入/匯出 功能。 如需詳細資訊,請參閱 如何設定 Azure Cache for Redis 的數據持續性。

我可以使用PowerShell、CLI或其他管理用戶端將 匯入/匯出 自動化嗎?

是,請參閱下列 進階版 層的指示:

針對 EnterpriseEnterprise Flash 層:

我在 匯入/匯出 作業期間收到逾時錯誤。 這代表什麼?

在左側,如果您在開始作業前保留匯 入資料匯出數據 超過 15 分鐘,您會收到類似下列範例的錯誤訊息:

The request to import data into cache 'contoso55' failed with status 'error' and error 'One of the SAS URIs provided could not be used for the following reason: The SAS token end time (se) must be at least 1 hour from now and the start time (st), if given, must be at least 15 minutes in the past.

若要解決此錯誤,請在經過15分鐘之前啟動匯入或匯出作業。

將數據匯出至 Azure Blob 儲存體 時發生錯誤。 發生什麼事?

匯出僅適用於儲存為分頁 Blob 的 RDB 檔案。 目前不支援其他 Blob 類型,包括具有經常性存取和非經常性存取層的 Blob 記憶體帳戶。 如需詳細資訊,請參閱 Azure 儲存體帳戶概觀。 如果您使用存取金鑰來驗證記憶體帳戶,記憶體帳戶上的防火牆例外狀況往往會導致匯入/匯出程序失敗。

如果我已在記憶體帳戶上啟用防火牆,該怎麼辦?

如果使用 進階版 層實例,您必須在記憶體帳戶設定中檢查 [允許受信任服務清單中的 Azure 服務存取此儲存體帳戶]。 然後,使用受控識別(系統或使用者指派),併為該對象標識碼布建 儲存體 Blob 數據參與者 RBAC 角色。

如需詳細資訊,請參閱 記憶體帳戶的受控識別 - Azure Cache for Redis

企業 和企業 Flash 實例不支援將數據匯入或匯出至使用防火牆或私人端點的記憶體帳戶。 記憶體帳戶必須具有公用網路存取權。

我可以從與快取不同的訂用帳戶中的記憶體帳戶匯入或匯出數據嗎?

進階版 層中,您可以從與快取不同的訂用帳戶中的記憶體帳戶匯入和匯出數據,但您必須使用受控識別作為驗證方法。 設定匯入或匯出時,您必須選取保存記憶體帳戶的所選訂用帳戶。

需要授與哪些許可權給記憶體帳戶容器共用存取簽章 (SAS) 令牌,才能允許匯出?

若要順利匯出至 Azure 記憶體帳戶, 共用存取簽章 (SAS) 令牌 必須具有下列許可權:

  • read
  • add
  • create
  • write
  • delete
  • tag
  • move

下一步

深入了解 Azure Cache for Redis 功能。