在 Azure Cache for Redis 中匯入與匯出資料
使用 Azure Cache for Redis 中的匯入和匯出功能作為資料管理作業。 您可以使用 Azure Cache for Redis 資料庫 (RDB) 快照集,將資料匯入至快取執行個體,或從快取執行個體匯出資料。 快照集是使用 Azure 儲存體帳戶中的 Blob 匯入或匯出的。
Premium、Enterprise 和 Enterprise Flash 層支援匯入/匯出:
- 匯出 - 您可以將 Azure Cache for Redis RDB 快照集匯出至分頁 Blob (Premium 層) 或區塊 Blob (Enterprise 層)。
- 匯入 - 您可以從分頁 Blob 或區塊 Blob 匯入您的 Azure Cache for Redis RDB 快照集。
您可以使用匯入/匯出,在不同的 Azure Cache for Redis 執行個體之間移轉,或在使用前將資料填入快取。
本文提供使用 Azure Cache for Redis 匯入和匯出資料的指南,並提供常見問題的解答。
可用性範圍
層 | 基本、標準 | 進階 | Enterprise,Enterprise Flash |
---|---|---|---|
可用的 | No | .是 | Yes |
相容性
- 資料會在 Premium 層中匯出為 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)
- 來自 Premium 層快取的 RDB 檔案可以匯入至 Enterprise 和 Enterprise Flash 層快取。
Import
使用匯入來從任何雲端或環境中執行的 Redis 伺服器 (包含在 Linux、Windows 上執行的 Redis,或任何雲端提供者,例如 Amazon Web Services 等) 引入 Redis 相容 RDB 檔案。 匯入資料是使用預先填入資料建立快取的輕鬆方式。 在進行匯入程序的期間,Azure Cache for Redis 會從 Azure 儲存體將 RDB 檔案載入記憶體,然後將金鑰插入快取中。
注意
開始匯入作業之前,請確定您的 Redis 資料庫 (RDB) 檔案已上傳到 Azure 儲存體中的分頁或區塊 blob,位於和 Azure Cache for Redis 執行個體相同的區域和訂用帳戶。 如果您使用受控識別進行驗證,儲存體帳戶可以位於不同的訂用帳戶中。 如需詳細資訊,請參閱 開始使用 Azure Blob 儲存體。 如果您使用 Azure Cache for Redis 匯出 功能匯出 RDB 檔案,表示 RDB 檔案已儲存在分頁 blob,並且可供匯入。
重要
目前,不支援從 Redis Enterprise 層匯入至 Premium 層。
若要匯入一或多個匯出的快取 Blob,請瀏覽至 Azure 入口網站中的快取,然後自 [資源功能表] 選取 [匯入資料]。 在工作窗格中,您會看到 [選擇 Blob],其中可以找到 RDB 檔案。
選取 [選擇 Blob],然後選取包含所要匯入資料的儲存體帳戶。
選取包含所要匯入資料的容器。
選取 Blob 名稱左側的區域以選取一或多個要匯出的 Blob,然後按一下 [選取]。
選取 [匯入] 開始匯入程序。
重要
快取用戶端無法在匯入程序期間存取快取,而且在快取中的所有現有資料都會刪除。
您可以遵循 Azure 入口網站的通知,或檢視活動記錄中的事件來監視匯入作業的進度。
重要
Enterprise 層尚未提供活動記錄支援。
Export
匯出可讓您將儲存在 Azure Cache for Redis 中的資料匯出至與 Redis 相容的 RDB 檔案。 您可以使用這項功能,將資料從一個 Azure Cache for Redis 執行個體移到另一個執行個體,或移到另一個 Redis 伺服器。 在匯出程序期間,會在主控 Azure Cache for Redis 伺服器執行個體的 VM 上建立暫存檔案。 接著,將檔案上傳至所選的儲存體帳戶。 當匯出作業完成時的狀態為成功或失敗時,都會刪除暫存檔案。
若要將快取的目前內容匯出至儲存體,請瀏覽至 Azure 入口網站中的快取,然後自 [資源功能表] 選取 [匯出資料]。 您會在工作窗格中看到 [選擇儲存體容器]。
選取 [選擇儲存體容器] 並顯示可用儲存體帳戶的清單。 選取所要的儲存體帳戶。 該儲存體帳戶必須與您的快取位於相同區域。 如果您使用受控識別進行驗證,儲存體帳戶可以位於不同的訂用帳戶中。 否則,儲存體帳戶必須與您的快取位於相同的訂用帳戶中。
重要
- 匯出適用於傳統和 Resource Manager 儲存體帳戶支援的分頁 Blob。
- Azure Cache for Redis 不支援匯出至 ADLS Gen2 儲存體帳戶。
- Blob 儲存體帳戶目前不支援匯出。
- 如果您的快取資料匯出至已啟用防火牆的儲存體帳戶失敗,請參閱如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
如需詳細資訊,請參閱 Azure 儲存體帳戶概觀。
選擇所要保留匯出的儲存體容器,然後選擇 [選取]。 若要使用新的容器,請先選取 [新增容器] 加以新增,然後自清單中選取容器。
輸入 [Blob 名稱前置詞],然後選取 [匯出] 開始匯出程序。 Blob 名稱前置詞可用來做為此匯出作業所產生之檔案名稱的前置詞。
您可以遵循 Azure 入口網站的通知,或檢視稽核記錄檔中的事件來監視匯出作業的進度。
在匯出程序期間快取隨時可供使用。
匯入/匯出常見問題集
本節包含匯入/匯出功能的常見問題集。
- 哪些層支援匯入/匯出?
- 我是否可以從任何 Redis 伺服器匯入資料?
- 我可以匯入哪些 RDB 版本?
- 在匯入/匯出作業期間,是否可以使用我的快取?
- 我可以使用匯入/匯出搭配 Redis 叢集嗎?
- 匯入/匯出如何對自訂資料庫設定運作?
- 匯入/匯出和 Redis 永續性有何不同?
- 我可以使用 PowerShell、CLI 或其他管理用戶端自動化匯入/匯出嗎?
- 我在匯入/匯出作業期間收到逾時錯誤。 這代表什麼?
- 我將資料匯出至 Azure Blob 儲存體時收到錯誤。 發生什麼事?
- 如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
- 我是否可以在與快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
- 哪些權限必須授與儲存體帳戶容器共用存取簽章 (SAS) 權杖,才能允許匯出?
哪些層支援匯入/匯出?
「匯入」和「匯出」功能僅適用於 Premium、Enterprise 和 Enterprise Flash 層。
我是否可以從任何 Redis 伺服器匯入資料?
是,您可以匯入從 Azure Cache for Redis 執行個體匯出的資料。 您可以從任何雲端或環境中執行的任何 Redis 伺服器匯入 RDB 檔案。 環境包括 Linux、Windows 或雲端提供者 (例如 Amazon Web Services)。 若要匯出此資料,請將所要 Redis 伺服器中的 RDB 檔案上傳至 Azure 儲存體帳戶中的分頁或區塊 Blob。 然後將檔案匯入至進階 Azure Cache for Redis 執行個體。
例如,您可能要:
從您的生產快取匯出資料。
然後,將其匯入至快取,作為預備環境進行測試或移轉的一部分。
重要
若要在使用分頁 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 專屬二進位格式撰寫的。 如果發生同時停用主要和複本快取的災難性事件,則會使用最新的快照集自動還原快取資料。
資料持續性是專為災害復原而設計。 其並非旨在作為時間點復原機制。
- 在 Premium 層上,資料持續性檔案會儲存在 Azure 儲存體中,但該檔案無法匯入至不同的快取。
- 在 Enterprise 層上,資料持續性檔案會儲存在使用者無法存取的掛接磁碟中。
如果您想要定期建立資料備份以進行時間點復原,我們建議您使用「匯入/匯出」功能。 如需詳細資訊,請參閱如何設定 Azure Cache for Redis 的資料持續性。
我可以使用 PowerShell、CLI 或其他管理用戶端自動化匯入/匯出嗎?
可以,請參閱下列適用於 Premium 層的指示:
- 如何匯入 Redis 資料和匯出 Redis 資料的 PowerShell 指示。
- 如何匯入 Redis 資料和匯出 Redis 資料的 Azure CLI 指示
針對 Enterprise 和 Enterprise Flash 層:
- 如何匯入 Redis 資料和匯出 Redis 資料的 PowerShell 指示。
- 如何匯入 Redis 資料和匯出 Redis 資料的 Azure CLI 指示
我在匯入/匯出作業期間收到逾時錯誤。 這代表什麼?
在左側,如果您在開始作業之前停留在 [匯入資料] 或 [匯出資料] 超過 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
Enterprise 和 Enterprise Flash 執行個體不支援將資料匯入至使用防火牆或私人端點的儲存體帳戶,或從中匯出資料。 儲存體帳戶必須具有公用網路存取權。
是否可以在與我快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
在 Premium 層中,您可以在與快取不同的訂用帳戶中,從儲存體帳戶匯入和匯出資料,但必須使用受控識別作為驗證方法。 設定匯入或匯出時,您必須選取保存儲存體帳戶的所選訂用帳戶。
哪些權限必須授與儲存體帳戶容器共用存取簽章 (SAS) 權杖,才能允許匯出?
若要匯出至 Azure 記憶體帳戶才能順利運作, 共用存取簽章 (SAS) 令牌 必須具有下列許可權:
read
add
create
write
delete
tag
move
下一步
深入了解 Azure Cache for Redis 功能。