

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

管理您希望如何更新针对 Valkey、Mem ElastiCache cached 和 Redis OSS 引擎更新的缓存和基于节点的集群。

## ElastiCache 无服务器缓存的版本管理
<a name="VersionManagement-serverless"></a>

管理是否以及何时升级 ElastiCache 无服务器缓存，并根据自己的条件和时间表执行版本升级。

ElastiCache Serverless 会自动将最新的次要版本和补丁软件版本应用到您的缓存，而不会对您的应用程序造成任何影响或停机。在您的末端不需要执行任何操作。

当有新的主要版本可用时， ElastiCache Serverless 将在控制台中向您发送通知，并在中 EventBridge向您发送事件。您可以选择使用控制台、CLI 或 API 修改缓存并选择最新的引擎版本，将缓存升级到最新的主要版本。与次要升级和补丁升级类似，主要版本升级无需应用程序停机即可执行。

## 基于节点 ElastiCache 的集群的版本管理
<a name="VersionManagement-clusters"></a>

使用基于节点的 ElastiCache 集群时，您可以控制为集群提供支持的软件何时升级到支持的新版本。 ElastiCache您可以控制何时将缓存升级到最新的主要、次要和补丁版本。可以通过修改集群或复制组并指定新的引擎版本，对您的集群或复制组启动引擎版本升级。

您可以控制为集群提供支持的符合协议的软件是否以及何时升级到支持的新版本。 ElastiCache此级别的控制使您能够与特定版本保持兼容、在生产中部署进行之前使用应用程序测试新版本以及根据自己的条件和时间表执行版本升级。

因为版本升级可能会涉及到某些兼容性风险，因此版本升级不会自动发生。您必须启动它们。

**Valkey 和 Redis OSS 集群**

**注意**  
如果跨一个或多个区域复制 Valkey 或 Redis OSS 集群，则会先升级辅助区域的引擎版本，然后再升级主区域的引擎版本。
 ElastiCache 对于 Redis，OSS 版本以语义版本标识，语义版本包括主要和次要组件。例如，在 Redis OSS 6.2 中，主要版本为 6，次要版本为 2。在操作基于节点的集群时， ElastiCache 适用于 Redis 的 OSS 还会公开补丁组件，例如 Redis OSS 6.2.1，补丁版本为 1。  
主要版本针对 API 不兼容的更改，而次要版本针对以向后兼容的方式添加的新功能。补丁版本针对向后兼容的错误修复和非功能性更改。

对于 Valkey 和 Redis OSS，您可以通过修改集群或复制组并指定新的引擎版本来对启动集群或复制组的版本升级。有关更多信息，请参阅 [修改复制组](Replication.Modify.md)。

**Memcached**

对于 Memcached，要升级到更新的版本，您必须修改集群，并指定要使用的新引擎版本。升级到更新的 Memcached 版本是一个破坏性过程 – 您会丢失数据并以冷缓存开始。有关更多信息，请参阅 [修改集 ElastiCache 群](Clusters.Modify.md)。

从旧版本的 Memcached 升级到 1.4.33 版本或更新版本的 Memcached 时，您应注意以下要求。`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)。

## 支持的引擎和版本
<a name="supported-engine-versions"></a>

ElastiCache Valkey 及更高 ElastiCache 版本的无服务器缓存支持 7.2 版，Memcached 及更高 ElastiCache 版本支持 1.6 版，Redis OSS 及更高版本支持 ElastiCache 7.0 版。

Node-based ElastiCache 集群支持 Valkey 及以上 ElastiCache 版本 7.2，Memcached 及更高 ElastiCache 版本支持 1.4.5 版，Redis OSS 及更高版本支持 ElastiCache 4.0.10。

**Topics**
+ [支持的 Valkey 版本](#supported-engine-versions.valkey)
+ [Valkey 9.0](#valkey-version-9.0)
+ [Valkey 8.2](#valkey-version-8.2)
+ [Valkey 8.1](#valkey-version-8.1)
+ [Valkey 8.0](#valkey-version-8)
+ [ElastiCache 适用于 Valkey 的 7.2.6 版](#valkey-version-7.2.6)

### 支持的 Valkey 版本
<a name="supported-engine-versions.valkey"></a>

支持的 Valkey 版本如下。请注意，默认情况下，Valkey 支持 Redis OSS 7.2 ElastiCache 版本中提供的大多数功能。
+ 您也可以使用低于 5.0.6 的版本升级 ElastiCache 集群。所涉及的过程相同，但在 DNS 传播期间可能会导致更长的故障转移时间（30 秒 - 1 分钟）。
+ 从 Redis OSS 7 开始， ElastiCache 支持在 Valkey 或 Redis OSS（已禁用集群模式）和 Valkey 或 Redis OSS（启用集群模式）之间切换。
+ Amazon ElastiCache for Redis OSS 引擎升级过程旨在尽最大努力保留您的现有数据，并且需要成功复制 Redis OSS。
+ 升级引擎时， ElastiCache 将终止现有的客户端连接。为了最大限度地减少引擎升级期间的停机时间，我们建议您实施[关于 Redis OSS 客户端的最佳实践](BestPractices.Clients.redis.md)，包括错误重试和指数回退，以及关于[维护期间最大限度减少停机时间](BestPractices.MinimizeDowntime.md)的最佳实践。
+ 升级引擎时，您无法从 Valkey 或 Redis OSS（已禁用集群模式）直接升级到 Valkey 或 Redis OSS（已启用集群模式）。以下过程演示了如何从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）。

**从 Valkey 或 Redis OSS（已禁用集群模式）升级到 Valkey 或 Redis OSS（已启用集群模式）引擎版本**

  1. 备份 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [进行手动备份](backups-manual.md)。

  1. 使用备份创建具有一个分片（节点组）的 Valkey 或 Redis OSS（已启用集群模式）集群并为其制作种子。在创建集群或复制组时，指定新的引擎版本并启用集群模式。有关更多信息，请参阅 [教程：使用外部创建的备份为新的基于节点的集群制作种子](backups-seeding-redis.md)。

  1. 删除旧 Valkey 或 Redis OSS（已禁用集群模式）集群或复制组。有关更多信息，请参阅 [删除中的集群 ElastiCache](Clusters.Delete.md)或 [删除复制组](Replication.DeletingRepGroup.md)。

  1. 将新的 Valkey 或 Redis OSS（已启用集群模式）集群或复制组扩展到所需的分片（节点组）数。有关更多信息，请参阅 [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)。
+ 升级主要引擎版本（例如从 5.0.6 升级到 6.0）时，还需要选择一个与新引擎版本兼容的新参数组。
+ 对于单个 Redis OSS 集群和 Multi-AZ 已禁用的集群，我们建议按中所述为 Redis OSS 提供足够的内存。[确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存](BestPractices.BGSAVE.md)在这些情况下，主项在升级过程中不可用于处理服务请求。
+ 对于 Multi-AZ 已启用的 Redis OSS 集群，我们还建议您在传入写入流量较低的时段安排引擎升级。升级到 Redis OSS 5.0.6 或更高版本时，主集群在升级过程中仍可用于服务请求。

  将处理和修补带多个分片的集群和复制组，如下所示：
  + 将并行处理所有分片。在任何时候，仅在分片上执行一次升级操作。
  + 在每个分片中，在处理主副本之前，会先处理所有其他副本。如果一个分片中的副本较少，则可能会在处理完其他分片中的副本之前处理该分片中的主副本。
  + 在所有分片中，主节点都是按顺序处理的。一次只升级一个主节点。
+ 如果已对当前集群或复制组启用了加密，则无法升级到不支持加密的引擎版本，例如，从 3.2.6 升级到 3.2.10。

**Memcached 注意事项**

在升级基于节点的 Memcached 集群时，请注意以下事项。
+ 引擎版本管理的设计使您可以尽可能多地控制修补的发生方式。但是，如果系统或缓存软件中出现严重安全漏洞，则 ElastiCache 保留代表您修补集群的权利。
+ 由于 Memcached 引擎不支持持久化，因此 Memcached 引擎版本升级始终是一个中断性过程，将清除集群中的所有缓存数据。

### ElastiCache 适用于 Valkey 的 9.0 版
<a name="valkey-version-9.0"></a>

以下是 Valkey 9.0 中引入的一些新功能（与 Valke ElastiCache y 8.2 相比）：
+ **Full-text 搜索、聚合和混合搜索** — Valkey ElastiCache 版本 9.0 扩展了 Valkey 8.2 中引入的搜索功能，增加了全文搜索、聚合管道以及结合了文本和矢量结果的混合查询。无需管理单独的搜索引擎，即可直接在缓存中构建强大的搜索体验。这些功能基于开源 [valkey-search 项目](https://github.com/valkey-io/valkey-search)。
+ **哈希字段过期** — 为哈希中的各个字段设置 TTL，无需管理单独的密钥，即可精细控制数据生命周期。自动过期陈旧字段，同时保持哈希的其余部分完好无损。([\#2089](https://github.com/valkey-io/valkey/pull/2089))
+ **Multi-database 集群模式支持 — 在支持**集群模式的配置中使用编号数据库 (`SELECT 0`—`15`)，从而消除长期存在的限制，简化了从独立部署到水平扩展群集的迁移。([\#1671](https://github.com/valkey-io/valkey/pull/1671))
+ **通过流水线传输可将吞吐量提高40％ — 优化的命令解析和跨流水线请求的预取为批量密集**型工作负载提供了更高的吞吐量，因此您无需添加节点即可每秒处理更多操作。([\#2092](https://github.com/valkey-io/valkey/pull/2092))
+ **Polygon-based 地理空间查询** — `GEOSEARCHSTORE` 允许您查询任意多边形边界内的成员的新`BYPOLYGON`选项，从而实现实际的地理围栏用例，例如配送区域、服务区和区域定位。`GEOSEARCH`([\#1809](https://github.com/valkey-io/valkey/pull/1809))
+ 在 9.0.0 到 9.0.3 版本中，还有 100 多项额外增强，包括 13 项新功能、16 项带有 SIMD 加速功能的性能优化、对 D [ELIFEQ](https://valkey.io/commands/delifeq/) 的支持、通过每节点和每插槽指标扩展可观察性、MPTCP 网络支持以及基于 TLS 证书的自动身份验证。有关完整列表，请参阅 [Valkey 9.0 发行说明](https://github.com/valkey-io/valkey/releases/tag/9.0.0)。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)。

有关 Valkey 9.0 版本的更多信息，请参阅 V [alkey 9.](https://github.com/valkey-io/valkey/blob/9.0/00-RELEASENOTES) 0 版本说明。

### ElastiCache 适用于 Valkey 的 8.2 版
<a name="valkey-version-8.2"></a>

以下是 Valkey 8.2 中引入的一些新功能（与 Valke ElastiCache y 8.1 相比）：
+ ElastiCache for Valkey v8.2 为[矢量搜索](search.md)提供了原生支持，延迟低至微秒，这是延迟最低的矢量搜索，吞吐量最高，性价比最高，召回率在 95% 以上。 AWS

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)。

ElastiCache Valkey 的 8.2 版通过基于 valkey-search 模块的矢量搜索功能增强了 [Val](https://github.com/valkey-io/valkey-search) key 8.1。有关 Valkey 8.2 版本的更多信息，请参阅 valkey-se [arch 的发行说明](https://github.com/valkey-io/valkey-search/blob/main/00-RELEASENOTES)。请注意， ElastiCache v8.2 与 Valkey v8.1 兼容。

### ElastiCache 适用于 Valkey 的 8.1 版
<a name="valkey-version-8.1"></a>

以下是 Valkey 8.1 中引入的一些新功能（与 Valke ElastiCache y 8.0 相比）：
+ 一种[新的哈希表](https://valkey.io/blog/new-hash-table/)实现，可减少内存开销，将常见 key/value 模式的内存使用量降低多达20％。
+ 对 [Bloom 筛选条件](https://valkey.io/topics/bloomfilters/)的原生支持，这是一种新的数据类型，与使用 Set 数据类型相比，允许您使用多达 98% 的内存执行查找。
+ 新命令 [COMMANDLOG](https://valkey.io/commands/commandlog-get/)，用于记录执行缓慢情况、大型请求及大型回复。
+ 新增对 SET 命令的条件更新支持（使用 IFEQ 参数）。
+ 性能改进，包括 ZRANK 命令的延迟降低多达 45%，PFMERGE 和 PFCOUNT 的性能提高多达 12 倍，BITCOUNT 的吞吐量提高多达 514%。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey 8.1 版本的更多信息，请参阅 [Valkey 8.1 Release Notes](https://github.com/valkey-io/valkey/blob/8.1/00-RELEASENOTES)

### ElastiCache 适用于 Valkey 的 8.0 版
<a name="valkey-version-8"></a>

以下是 Valkey 8.0 中引入的一些新功能（与 Valkey 7.2.6 相比）： ElastiCache 
+ 内存效率提高，允许用户在不进行任何应用程序更改的情况下在每个节点上存储多达 20% 的数据。
+ Newly-introduced 基于节点的集群的每插槽指标基础架构，可详细了解各个插槽的性能和资源使用情况。
+ ElastiCache 适用于 Valkey 8.0 的无服务器可以每 2-3 分钟将支持的每秒请求数 (RPS) 翻一番，在不到 13 分钟的时间内从零达到每个缓存 500 万 RPS，读取延迟始终保持亚毫秒 p50。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey 8 版本的更多信息，请参阅 [Valkey 8 Release Notes](https://github.com/valkey-io/valkey/blob/8.0/00-RELEASENOTES)

### ElastiCache 适用于 Valkey 的 7.2.6 版
<a name="valkey-version-7.2.6"></a>

2024 年 10 月 10 日，Valkey ElastiCache 的 7.2.6 版本发布。以下是 7.2 中引入的一些新功能（与 Redis OSS 的 7.1 ElastiCache 版本相比）：
+ 各种数据类型的性能和内存优化：列表和集合类型键的内存优化、排序集命令的速度优化、集群模式下具有多个键的命令的性能优化、 pub/sub 性能改进、SCAN、HSCAN、ZSCAN 命令的性能优化以及许多其他较小的优化。
+ ZRANK 和 ZREVRANK 命令有新的 WITHSCORE 选项
+ 客户端 NO-TOUCH ，供客户端在不影响 LRU/LFU 密钥的情况下运行命令。
+ 新命令 CLUSTER MYSHARDID 返回节点的分片 ID，以便根据复制在集群模式下对节点进行逻辑分组。

有关 Valkey 的更多信息，请参阅 [Valkey](https://valkey.io/)

有关 Valkey ElastiCache 版本 7.2 的更多信息，请参阅 [Redis OSS 7.2.4 发行说明（Valkey 的](https://github.com/valkey-io/valkey/blob/d2c8a4b91e8c0e6aefd1f5bc0bf582cddbe046b7/00-RELEASENOTES) 7.2 ElastiCache 版本包括从 Redis OSS 的 7.1 ElastiCache 版到 Redis OSS 的 7.2.4 ElastiCache 版的所有更改）。[Valkey 上的 Valkey 7.2 发行说明](https://github.com/valkey-io/valkey/blob/7.2/00-RELEASENOTES) GitHub