ElastiCache 的版本管理 - Amazon ElastiCache

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

ElastiCache 的版本管理

管理您要如何更新 ElastiCache 快取,以及針對 Valkey、Memcached 和 Redis OSS 引擎更新自行設計的叢集。

ElastiCache Serverless Cache 的版本管理

管理 ElastiCache Serverless 快取是否升級以及何時升級,並根據您自己的期限和時間表執行版本升級。

ElastiCache Serverless 會自動將最新的次要和修補程式軟體版本套用至快取,而不會對您的應用程式造成任何影響或停機。您不需要進行任何動作。

當新的主要版本可用時,ElastiCache Serverless 會在主控台中傳送通知,並在 EventBridge 中傳送事件給您。您可以選擇使用主控台、CLI 或 API 修改快取,然後選取最新的引擎版本,以將快取升級至最新的主要版本。與次要和修補程式升級類似,主要版本升級的執行不會對您的應用程式造成停機時間。

自行設計的 ElastiCache 叢集的版本管理

使用自行設計的 ElastiCache 叢集時,您可以控制何時將支援您快取叢集的軟體升級到 ElastiCache 支援的新版本。您可以控制何時將快取升級至最新的可用主要、次要和修補程式版本。您可以修改引擎版本並指定新的引擎版本,以初始化叢集或複寫群組的引擎版本升級。

您可以控制是否以及何時將支援快取叢集的通訊協定合規軟體升級到 ElastiCache 支援的新版本。這一層控制可讓您維持特定版本的相容性、在部署至生產環境前先利用您的應用程式測試新版本,並根據自己的期限和時間表執行版本升級。

由於版本升級可能涉及一定的相容性風險,因此這些升級不會自行啟動,必須由您啟動。

Valkey 和 Redis OSS 叢集

注意
  • 如果跨一或多個區域複寫 Valkey 或 Redis OSS 叢集,則會針對次要區域升級引擎版本,然後針對主要區域升級引擎版本。

  • ElastiCache for Redis OSS 版本是以構成主要和次要元件的語意版本來識別。例如,在 Redis OSS 6.2 中,主要版本為 6,次要版本為 2。操作自行設計的叢集時,ElastiCache for Redis OSS 也會公開修補程式元件,例如 Redis OSS 6.2.1,且修補程式版本為 1。

    主要版本適用於與 API 不相容的變更,次要版本適用於以回溯相容方式新增的新功能。修補程式版本適用於回溯相容的錯誤修正和非功能變更。

使用 Valkey 和 Redis OSS,您可以透過修改並指定新的引擎版本來啟動對叢集或複寫群組的引擎版本升級。如需詳細資訊,請參閱修改複寫群組

Memcached

使用 Memcached,若要升級至較新版本,您必須修改快取叢集,並指定要使用的新引擎版本。升級至更新版本的 Memcached 是一種破壞性程序,您會失去所有資料,並從空白快取開始。如需詳細資訊,請參閱修改 ElastiCache 叢集

從舊版 Memcached 升級到 Memcached 1.4.33 版或更新版本時,請注意下列要求。CreateCacheClusterModifyCacheCluster 必須滿足下列條件:

  • 如果 slab_chunk_max > max_item_size

  • 如果 max_item_size modulo slab_chunk_max != 0

  • 如果 max_item_size > ((max_cache_memory - memcached_connections_overhead) / 4)

    (max_cache_memory - memcached_connections_overhead) 值是節點可供資料使用的記憶體。如需詳細資訊,請參閱Memcached 連線額外負荷

支援的引擎和版本

ElastiCache 無伺服器快取支援適用於 Valkey 和更新版本的 ElastiCache 7.2 版、適用於 Memcached 和更新版本的 ElastiCache 1.6 版,以及適用於 Redis OSS 和更新版本的 ElastiCache 7.0 版。

ElastiCache 自行設計的快取支援適用於 Valkey 和更新版本的 ElastiCache 7.2 版、適用於 Memcached 和更新版本的 ElastiCache 1.4.5 版,以及適用於 Redis OSS 和更新版本的 ElastiCache 4.0.10 版。

自行設計的 ElastiCache 叢集支援下列 Valkey 版本:

支援的 Valkey 版本

支援的 Valkey 版本如下。請注意,根據預設,Valkey 支援 ElastiCache 7.2 版適用於 Redis OSS 的大多數功能。

  • 您也可以升級 5.0.6 以前版本的 ElastiCache 叢集。所涉及的程序相同,但可能會在 DNS 傳播期間產生較長的容錯移轉時間 (30s-1m)。

  • 從 Redis OSS 7 開始,ElastiCache 支援在 Valkey 或 Redis OSS (停用叢集模式) 與 Valkey 或 Redis OSS (啟用叢集模式) 之間切換。

  • Amazon ElastiCache for Redis OSS 引擎升級程序旨在盡力保留現有資料,並需要成功的 Redis OSS 複寫。

  • 升級引擎時,ElastiCache 會終止現有的用戶端連線。為了在引擎升級期間將停機時間降至最低,我們建議您為 Redis OSS 用戶端實作最佳實務,其中包含錯誤重試和指數退避,以及將維護期間停機時間降至最低的最佳實務。

  • 升級引擎時,您無法直接從 Valkey 或 Redis OSS (停用叢集模式) 升級到 Valkey 或 Redis OSS (啟用叢集模式)。下列程序說明如何從 Valkey 或 Redis OSS (停用叢集模式) 升級到 Valkey 或 Redis OSS (啟用叢集模式)。

    從 Valkey 或 Redis OSS (停用叢集模式) 升級到 Valkey 或 Redis OSS (啟用叢集模式) 引擎版本
    1. 備份您的 Valkey 或 Redis OSS (停用叢集模式) 叢集或複寫群組。如需詳細資訊,請參閱取得手動備份

    2. 使用備份來建立並植入具有一個碎片 (節點群組) 的 Valkey 或 Redis OSS (啟用叢集模式) 叢集。指定新的引擎版本,並在建立叢集或複寫群組時啟用叢集模式。如需詳細資訊,請參閱教學課程:使用外部建立的備份植入新的自行設計叢集

    3. 刪除舊的 Valkey 或 Redis OSS (停用叢集模式) 叢集或複寫群組。如需詳細資訊,請參閱 在 ElastiCache 中刪除叢集刪除複寫群組

    4. 將新的 Valkey 或 Redis OSS (啟用叢集模式) 叢集或複寫群組擴展到您需要的碎片數量 (節點群組)。如需詳細資訊,請參閱在 Valkey 或 Redis OSS 中擴展叢集 (啟用叢集模式)

  • 升級主要引擎版本 (例如從 5.0.6 升級到 6.0) 時,還需要選擇一個與新引擎版本相容的新參數群組。

  • 對於停用異地同步備份的單一 Redis OSS 叢集和叢集,我們建議向 Redis OSS 提供足夠的記憶體,如 中所述確保您有足夠的記憶體來製作 Valkey 或 Redis OSS 快照。在這類案例中,主要叢集將無法在升級期間處理服務的請求。

  • 對於啟用異地同步備份的 Redis OSS 叢集,我們也建議您在低傳入寫入流量期間排程引擎升級。升級至 Redis OSS 5.0.6 或更新版本時,主要叢集會繼續在升級程序期間供服務請求使用。

    系統會依下列方式處理及修補含多個碎片的叢集和複寫群組:

    • 所有碎片都會平行處理。不論任何時間,一個碎片上都只能執行一項升級操作。

    • 在每個碎片中,都會先處理所有複本,再處理主要複本。如果某個碎片中的複本較少,則該碎片中的主要複本可能會在其他碎片的複本處理完成前就已處理。

    • 跨所有碎片時,則會循序處理主要節點。一次只會升級一個主要節點。

  • 如果您目前的叢集和複寫群組已啟用加密功能,就無法升級到不支援加密的引擎版本,例如從 3.2.6 升級到 3.2.10。

Memcached 考量事項

升級自行設計的 Memcached 叢集時,請考慮下列事項。

  • 引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但在系統或快取軟體可能存在關鍵安全漏洞的情況下,ElastiCache 保留代您修補叢集的權利。

  • 由於 Memcached 引擎不支援永久儲存,因此 Memcached 引擎版本升級一定是破壞性程序,並會清除叢集中的所有快取資料。

ElastiCache (Valkey) 8.0 版

以下是 Valkey 8.0 引進的一些新功能 (相較於 ElastiCache Valkey 7.2.6):

  • 記憶體效率改善,可讓使用者在每個節點上多儲存高達 20% 的資料,而不需進行任何應用程式變更。

  • 新推出的每個插槽指標基礎設施可自行設計快取,讓您詳細了解個別插槽的效能和資源使用情況。

  • ElastiCache Serverless for Valkey 8.0 每 2-3 分鐘可以將支援的每秒請求數 (RPS) 加倍,在 13 分鐘內從零達到每個快取 5M 萬 RPS,並具有一致的低於毫秒的 p50 讀取延遲。

如需 Valkey 的詳細資訊,請參閱 Valkey

如需 Valkey 8 版本的詳細資訊,請參閱 Valkey 8 版本備註

適用於 Valkey 的 ElastiCache 7.2.6 版

於 2024 年 10 月 10 日發行適用於 Valkey 的 ElastiCache 7.2.6 版。以下是 7.2 中引進的一些新功能 (相較於適用於 Redis OSS 的 ElastiCache 7.1 版):

  • 各種資料類型的效能和記憶體最佳化:清單和設定類型金鑰的記憶體最佳化、排序集命令的速度最佳化、叢集模式中具有多個金鑰的命令的效能最佳化、pub/sub 效能改善、SCAN、SSCAN、HSCAN、ZSCAN 命令的效能最佳化,以及許多其他較小的最佳化。

  • ZRANK 和 ZREVRANK 命令的新 WITHSCORE 選項

  • CLIENT NO-TOUCH 可讓用戶端執行命令,而不會影響金鑰的 LRU/LFU。

  • 傳回節點碎片 ID 的新命令 CLUSTER MYSHARDID,以根據複寫在叢集模式中邏輯上將節點分組。

如需 Valkey 的詳細資訊,請參閱 Valkey

如需 ElastiCache 7.2 for Valkey 版本的詳細資訊,請參閱 Redis OSS 7.2.4 版本備註 (ElastiCache 7.2 for Valkey 包含從 ElastiCache 7.1 for Redis OSS 到 ElastiCache 7.2.4 for Redis OSS 的所有變更)。GitHub 上的 Valkey 7.2 版本備註