重要事項
Azure Cache for Redis 宣布了所有 SKU 的淘汰時間表。 建議您儘快將現有的 Azure Cache for Redis 執行個體移至 Azure 受控 Redis 。
有關退役的更詳細資訊:
Azure Cache for Redis 匯入和匯出功能可以從 Azure Redis 快取实例匯入或匯出資料作為 Redis 資料庫 RDB快照。 快照集會透過 Azure 儲存體帳戶中的 Blob 來匯入或匯出。
您可以使用 Azure Redis 匯入和匯出功能進行數據管理、在不同的快取實例之間移轉,或在使用之前填入數據快取。 本文說明如何在 Azure Redis 中匯入和匯出數據,以及回答常見問題。
可用性範圍
| 層 | 基本和標準 | 進階 | Enterprise,Enterprise Flash |
|---|---|---|---|
| 可用 | 否 | 是 | 是 |
進階、企業和企業 Flash 層支持匯入和導出。
相容性
匯入
- 您可以從頁面 Blob 或區塊 Blob 匯入 RDB 快照集。
- 您可以從進階層快取將 RDB 檔案匯入 Enterprise 和 Enterprise Flash 層快取。
- 您無法將 Redis Enterprise 和 Enterprise Flash 層級的快取匯入至高級層級的快取。
出口
- 您可以將快照集匯出為進階層中的 RDB 分頁 Blob,或匯出為 Enterprise 層中的
.gz區塊 Blob。 - Blob 記憶體帳戶不支持導出。
版本
- Redis 4.0 快取支援 RDB 8 版和更新版本。 Redis 6.0 快取支援 RDB 9 版和更新版本。
- 您無法將已導出的備份從 Redis 6.0 等較新的 Redis 版本匯入舊版,例如 Redis 4.0。
先決條件
- Azure Cache for Redis 中的進階版、 Enterprise 或 Enterprise Flash 層級快取。
- 若要匯入檔案、RDB 檔案,或上傳至 Azure 儲存體中分頁或區塊 Blob 的檔案,這些儲存體需與您的 Azure Redis 快取位於相同的區域和訂用帳戶中。
附註
如果您使用受控識別進行記憶體帳戶驗證,記憶體帳戶可以位於不同的訂用帳戶中。
進口
您可以使用匯入,從任何雲端或環境中執行的任何 Redis 伺服器,包括 Linux、Windows 或其他雲端提供者,例如 Amazon Web Services,引進與 Redis 相容的 RDB 檔案。 匯入資料是使用預先填入資料建立快取的輕鬆方式。
在匯入程式期間,Azure Redis 會將 RDB 檔案從 Azure 記憶體載入記憶體,然後將密鑰插入快取中。
重要事項
匯入數據會刪除預先存在的快取數據,而且快取客戶端無法在匯入程式期間存取快取。
重要事項
不支援從 Redis 企業層匯入至進階層。
附註
匯入之前,請確定您的 RDB 檔案或檔案會上傳至 Azure 記憶體中的分頁或區塊 Blob。 如果您先遵循 匯出 程式,您的 RDB 檔案已儲存在分頁 Blob 中,且已準備好匯入。
若要匯入一或多個快取 Blob,請在 Azure 入口網站的 [Redis 快取] 頁面上,選取左側導覽功能表上的 [系統管理] 底下的 [匯入數據]。
在 [匯入資料] 頁面上,選取 [驗證方法],然後選取 [ 選擇 Blob]。
在 [ 記憶體帳戶] 頁面上,選取包含要匯入數據的記憶體帳戶。
在 [ 容器] 頁面上,選取記憶體帳戶內的容器,其中包含要匯入的數據。
在容器頁面上,選取一或多個 Blob 旁要匯入的複選框,然後選取 [ 選取]。
在 [ 匯入數據] 頁面上,選取 [ 匯 入] 以開始匯入程式。
您可以遵循 Azure 入口網站的通知,或在 活動記錄中檢視事件,以監視匯入進度。
出口
匯出程式會將儲存在 Azure Redis 快取中的數據匯出至 RDB 檔案。 您可以使用這項功能將數據從一個 Azure Redis 快取或伺服器移至另一個。
在匯出程式期間,會在裝載 Azure Redis 伺服器實例的虛擬機上建立暫存盤。 然後,檔案會上傳至所選的記憶體帳戶。 當匯出作業以成功或失敗完成時,會刪除暫存盤。
重要事項
- Azure Redis 不支持導出至 Azure Data Lake Storage Gen2 儲存器帳戶。
- Blob 記憶體帳戶不支援 Azure Redis 導出。
- Enterprise 和 Enterprise Flash 不支援匯入或匯出至使用防火牆或私人端點的儲存體帳戶。 儲存體帳戶必須具有公用網路存取權。
如果您的導出至已啟用防火牆的記憶體帳戶失敗,請參閱 如果我已在記憶體帳戶上啟用防火牆 ,該怎麼辦?如需詳細資訊,請參閱 Azure 記憶體帳戶概觀。
若要將快取的目前內容匯出至記憶體,請在 Azure 入口網站的 [Redis 快取] 頁面上,選取左側導覽功能表上的 [系統管理] 底下的 [匯出數據]。
在 [ 匯出數據] 頁面上,針對 [Blob 名稱前置詞],輸入此匯出作業所產生的檔名前置詞。 選取 [驗證方法],然後選取 [ 選擇記憶體容器]。
在 [ 記憶體帳戶] 頁面上,選取包含要匯出數據的記憶體帳戶。
在 [ 容器 ] 頁面上,如果您想要建立導出的新容器,請選取 [ 容器],然後在 [ 新增容器 ] 頁面上輸入容器的名稱,然後選取 [ 建立]。 否則,請選取您想要使用的現有容器。
在 [容器] 頁面上,選取您要用於匯出的容器,然後選取 [選取]。
在 [ 匯出數據] 頁面上,選取 [ 導出]。
您可以遵循 Azure 入口網站的通知,或檢視 活動記錄中的事件,來監視匯出作業的進度。 在匯出程序期間快取隨時可供使用。
匯入匯出常見問題
本節包含有關匯入和匯出功能的常見問題。
- 我可以使用 Azure PowerShell 或 Azure CLI 將匯入匯出自動化嗎?
- 我是否可以從任何 Redis 伺服器匯入資料?
- 我是否可以在與快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
- 我可以搭配 Redis 叢集使用匯入-導出嗎?
- 匯入匯出如何搭配自定義資料庫設定運作?
- 匯入導出與 Redis 數據持續性如何不同?
- 我的快取是否可在匯入-導出作業期間使用?
- 如果我已在記憶體帳戶上啟用防火牆,該怎麼辦?
- 我可以匯入哪些 RDB 版本?
- 哪些 Azure Redis 層支持匯入-導出?
- 儲存帳戶容器的共用存取簽章 (SAS) 令牌需要具備哪些許可權才能允許導出?
- 為什麼將數據匯出至 Azure Blob 記憶體時發生錯誤?
哪些等級支持匯入匯出?
匯入和導出功能僅適用於進階、企業和企業 Flash 層。
我是否可以從任何 Redis 伺服器匯入資料?
是,您可以匯入從 Azure Redis 實例匯出的數據。 您可以從任何雲端或環境中執行的任何 Redis 伺服器匯入 RDB 檔案,包括 Linux、Windows 或其他雲端提供者,例如 Amazon Web Services。
若要匯入此數據,請將 RDB 檔案從 Redis 伺服器上傳至 Azure 記憶體帳戶中的分頁或區塊 Blob。 然後將它匯入您的 Azure Redis 快取實例。
例如,您可能想要從生產快取匯出資料,然後將它匯入預備環境一部分的快取,以進行測試或移轉。
重要事項
若要成功匯入從非 Azure Redis 伺服器導出的分頁 Blob 數據,分頁 Blob 大小必須在 512 位元組界限上對齊。 如需執行任何所需的位元組填補的範例程式碼,請參閱範例分頁 Blob 上傳 \(英文\)。
我可以匯入哪些 RDB 版本?
如需支持匯入 RDB 版本的詳細資訊,請參閱 相容性。
我的快取在匯入與匯出作業期間是否可用?
- 快取在導出期間仍可供使用,而且您可以在 匯出作業期間繼續使用快取。
- 當匯入作業啟動時,快取會變成無法使用,並在匯入作業完成時再次可供使用。
我可以搭配 Redis 叢集使用匯入-導出嗎?
是,您可以在叢集快取與非叢集快取之間匯入和導出。 由於 Redis 叢集僅支援資料庫 0,因此不會匯入資料庫中 0 以外的任何資料。 匯入叢集快取資料時,金鑰會在叢集的分區之間重新分配。
匯入匯出如何搭配自定義資料庫設定運作?
某些定價層有不同的 資料庫限制。 如果您在建立快取時自訂了 databases 設定,則匯入時有一些注意事項。
當您匯入至 databases 限制低於匯出層級的定價層時:
- 如果您使用的預設數目
databases,即所有定價層的16個,則不會遺失任何數據。 - 如果您使用的自定義數目
databases落在您要匯入之階層的限制內,則不會遺失任何數據。 - 如果您的匯出數據來自超過新層限制的資料庫,則不會匯入來自多餘的資料庫的數據。
匯入導出與 Redis 數據持續性如何不同?
Azure Cache for Redis 數據持續性功能主要是用於數據持久性,而匯入導出功能是針對進行時間點復原的定期數據備份而設計的。
當您設定資料持續性時,您的快取會根據可設定的備份頻率,將資料快照集保存至磁碟。 資料是以 Redis 專屬二進位格式撰寫的。
在進階層中,數據持續性檔案會儲存在 Azure 記憶體中,但您無法將檔案匯入不同的快取。 在 Enterprise 層上,資料持續性檔案會儲存在使用者無法存取的掛接磁碟中。
如果重大事件同時停用主要和復本快取,則會使用最新的快照集自動還原保存的快取數據。 數據持續性是專為災害復原所設計,並非做為 PITR 機制。
若要定期備份 PITR,請使用匯入-匯出功能。 如需詳細資訊,請參閱如何設定 Azure Cache for Redis 的資料持續性 (部分機器翻譯)。
我可以使用 Azure PowerShell 或 Azure CLI 將匯入匯出自動化嗎?
是的。 如需進階層,請參閱下列內容:
- 使用 Azure PowerShell 匯入進階 Azure Redis 快取
- 使用 Azure PowerShell 導出進階 Azure Redis 快取
- 使用 Azure CLI 匯入進階 Azure Redis 快取
- 使用 Azure CLI 導出進階 Azure Redis 快取
如需 Enterprise 和 Enterprise Flash 層級,請參閱下列內容:
- 使用 Azure PowerShell 匯入企業 Azure Redis 快取
- 使用 Azure PowerShell 匯出 Azure Redis 企業快取
- 使用 Azure CLI 匯入企業 Azure Redis 快取
- 使用 Azure CLI 匯出企業 Azure Redis 的快取
為什麼將數據匯出至 Azure Blob 記憶體時發生錯誤?
匯出只能使用儲存為分頁 blob 的 RDB 檔案。 其他 Blob 類型不受支援,包括具備熱儲存層和冷儲存層的 Blob 儲存體帳戶。 如需詳細資訊,請參閱 Azure 儲存體帳戶概觀。
如果您使用存取金鑰來驗證記憶體帳戶,則記憶體帳戶上的防火牆例外狀況可能會導致匯入導出程式失敗。
如果已在我的儲存體帳戶上啟用防火牆,該怎麼辦?
針對進階層實例,您必須在 受信任的服務清單中選取 [允許 Azure 服務],才能在記憶體帳戶設定中存取此記憶體帳戶 。 然後使用系統指派或使用者指派的受控識別,並為該物件識別碼指派 儲存體 Blob 資料參與者 角色型存取控制 (RBAC) 角色。 如需詳細資訊,請參閱 記憶體帳戶的受控識別。
企業和企業級 Flash 實例不支援從使用防火牆或私人端點的儲存帳戶匯入或匯出。 儲存體帳戶必須具有公用網路存取權。
是否可以在與我快取不同的訂用帳戶中,從儲存體帳戶匯入或匯出資料?
在進階層中,如果您使用受控識別作為驗證方法,您可以從來自不同訂用帳戶的儲存體帳戶匯入和導出資料。 設定匯入或匯出時,您必須選取保存記憶體帳戶的訂用帳戶。
哪些權限必須授與儲存體帳戶容器共用存取簽章 (SAS) 權杖,才能允許匯出?
若要匯出至 Azure 記憶體帳戶才能順利運作, 共用存取簽章 (SAS) 令牌 必須具有下列許可權:
readaddcreatewritedeletetagmove