

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

# ElastiCache 的版本管理
<a name="VersionManagement"></a>

管理您想要更新 ElastiCache 快取的方式，以及為 Valkey、Memcached 和 Redis OSS 引擎更新的節點型叢集。

## ElastiCache Serverless Cache 的版本管理
<a name="VersionManagement-serverless"></a>

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

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

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

## 節點型 ElastiCache 叢集的版本管理
<a name="VersionManagement-clusters"></a>

使用節點型 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，您可以透過修改並指定新的引擎版本來啟動對叢集或複寫群組的引擎版本升級。如需詳細資訊，請參閱[修改複寫群組](Replication.Modify.md)。

**Memcached**

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

從舊版 Memcached 升級到 Memcached 1.4.33 版或更新版本時，請注意下列要求。`CreateCacheCluster` 和 `ModifyCacheCluster` 必須滿足下列條件：
+ 如果 `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 連線額外負荷](ParameterGroups.Engine.md#ParameterGroups.Memcached.Overhead)。