快照和還原 - Amazon ElastiCache 的雷迪斯

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

快照和還原

執行 Redis 可透過建立快照來備份其資料。您可以使用備份來還原快取或將資料植入新的快取。備份包含快取的中繼資料,以及快取中的所有資料。所有備份都會寫入 Amazon Simple Storage Service (Amazon S3),該服務提供耐久性儲存空間。您可以隨時建立新的 Redis ,並將備份中的資料填入資料來還原資料。使用 ElastiCache,您可以使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 和 ElastiCache API 來管理備份。

如果您打算刪除快取,而且有必要保留資料,您可以採取額外的預防措施。若要達成此目標,請先建立手動備份、確認其狀態為可用,然後刪除快取。這樣做可確保備份失敗時,快取資料仍然可用。您可以依照前述的最佳實務,重試進行備份。

備份限制

規劃或建立備份時,請考慮下列限制:

  • 只有在 Redis 或無伺服器 Memcached 上執行的快取才支援 Backup 和還原。

  • 若是 Redis (停用叢集模式) 叢集,cache.t1.micro 節點上不支援備份和還原。所有其他快取節點類型則受到支援。

  • 若是 Redis (啟用叢集模式) 叢集,所有節點類型都支援備份和還原。

  • 在任何連續的 24 小時期間內,每個無伺服器快取最多可建立 24 個手動備份。對於 Redis 自行設計的叢集,您可以在叢集中的每個節點建立不超過 20 個手動備份。

  • Redis (啟用叢集模式) 只支援在叢集層級進行備份 (API 或 CLI 中則為複寫群組層級)。Redis (啟用叢集模式) 不支援在碎片層級進行備份 (API 或 CLI 中則為節點群組層級)。

  • 在備份過程中,您無法在無伺服器快取上執行任何其他 API 或 CLI 作業。您可以在備份期間在自行設計的叢集上執行 API 或 CLI 作業。

  • 如果使用具有資料分層的快取,則無法將備份匯出到 Amazon S3。

  • 只能將使用 r6gd 節點類型的叢集備份還原到使用 r6gd 節點類型的叢集。

自行設計叢集之備份的效能影響

無伺服器快取上的備份對於應用程式來說公開透明,不會影響效能。然而,在建立自行設計叢集的備份時,根據可用的保留記憶體而定,可能會對效能造成某種程度的影響。自行設計的叢集不適用於 ElastiCache 和 Memcached,但可與 Redis 一起 ElastiCache 使用。

以下是提升自行設計叢集之備份效能的準則。

  • 設定 reserved-memory-percent 參數 - 為了降低過度分頁的風險,建議您設定 reserved-memory-percent 參數。此參數可防止 Redis 用盡節點的所有可用記憶體,並可協助減少分頁數量。您也可以直接使用更大的節點來提升效能。如需 reserved-memoryreserved-memory-percent 參數的詳細資訊,請參閱管理預留記憶體

     

  • 從僅供讀取複本建立備份 - 如果您在含有多個節點的節點群組中執行 Redis,您可以從主節點或其中一個僅供讀取複本進行備份。由於 BGSAVE 期間所需的系統資源,我們建議您從其中一個僅供讀取複本建立備份。從複本建立備份時,主要節點會保持不受 BGSAVE 資源需求的影響。主要節點可繼續服務請求而不會變慢。

    若要執行此操作,請參閱「建立手動備份 (主控台)」,並在 Create Backup (建立備份)視窗裡的 Cluster Name (叢集名稱) 欄位中,選擇複本而非預設主節點。

如果您刪除複寫群組並要求最終備份,請務 ElastiCache 必從主要節點取得備份。這會確保您擷取最新的 Redis 資料,再刪除複寫群組。