

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

# 比较 Valkey、Memcached 和 Redis OSS 基于节点的集群
<a name="SelectEngine"></a>

亚马逊 ElastiCache 支持 Valkey、Memcached 和 Redis OSS 缓存引擎。每种引擎都有自己的优点。使用本主题中的信息有助于您选择出最能满足您的要求的引擎和版本。

**重要**  
创建基于节点的缓存群集或复制组后，您可以升级到较新的引擎版本，但不能降级到较旧的引擎版本。如果您要使用较旧的引擎版本，必须删除现有的基于节点的缓存群集或复制组，并使用较旧的引擎版本重新创建。

从表面上看，这两个引擎十分类似。其中的每个引擎都是一个内存中键/值存储。不过，这两者实际上有很大差异。

**如果您存在以下情况，请选择 Memcached：**
+ 您需要使模型尽可能简单。
+ 您需要运行具有多个核心或线程的大型节点。
+ 您需要具备缩放能力，随着系统需求的增加和减少来添加和移除节点。
+ 您需要缓存对象。

**ElastiCache 如果符合以下条件，请选择 Valkey 或 Redis OSS：**
+ **ElastiCache 适用于 Valkey 的 9.0 版**

  [您需要内置的[全文搜索、聚合和混合搜索功能，以扩展 Valkey 8.2 中引入的矢量搜索，每个字段 TTL 的[哈希字段过期](https://github.com/valkey-io/valkey/pull/2089)，[集群模式下的多数据库支持](https://github.com/valkey-io/valkey/pull/1671)，[基于多边形的地理空间查询](https://github.com/valkey-io/valkey/pull/1809)，通过管道传输将吞吐量提高多达 40%，或者原子槽迁](https://github.com/valkey-io/valkey-search)[移以实现更](https://github.com/valkey-io/valkey/pull/2092)安全的集群扩展。](https://github.com/valkey-io/valkey/pull/1949)有关更多信息，请参阅 [Valkey 9.0](VersionManagement.md#valkey-version-9.0)。
+ **ElastiCache 适用于 Valkey 的 8.2 版**

  您需要具有微秒延迟和 95% 以上的召回率的原生[矢量搜索](search.md)。有关更多信息，请参阅 [Valkey 8.2](VersionManagement.md#valkey-version-8.2)。
+ **ElastiCache 适用于 Valkey 的 8.1 版**

  你需要一个[新的节省内存的哈希表](https://valkey.io/blog/new-hash-table/)，它可以将内存开销减少多达 20%，支持原生 [Bloom 过滤器](https://valkey.io/topics/bloomfilters/)，使用 [COMMANDLOG](https://valkey.io/commands/commandlog-get/) 命令，并将 BITCOUNT 的吞吐量提高多达 514%。有关更多信息，请参阅 [Valkey 8.1](VersionManagement.md#valkey-version-8.1)。
+ **ElastiCache 适用于 Valkey 的 8.0 版**

  您希望通过[嵌入式密钥](https://github.com/valkey-io/valkey/pull/541)、[每插槽指标](https://github.com/valkey-io/valkey/pull/20)、[双通道复制](https://github.com/valkey-io/valkey/pull/60)和[异步 I/O ](https://github.com/valkey-io/valkey/pull/763)线程处理将内存效率提高多达 20%。有关更多信息，请参阅 [Valkey 8.0](VersionManagement.md#valkey-version-8)。
+ **ElastiCache 适用于 Valkey 的 7.2 版或 Redis OSS 的 7.0 版（增强版）**

  你想使用[函数](https://valkey.io/topics/functions-intro/)、[分片 Pub/Sub](https://valkey.io/topics/pubsub/)或 [ACL 改进](https://valkey.io/topics/acl/)。有关更多信息，请参阅 [Redis OSS 版本 7.0（加强版）](engine-versions.md#redis-version-7.0)。
+ **ElastiCache 适用于 Redis OSS 的 6.2 版（增强版）**

  您希望能够使用 r6gd 节点类型在内存和 SSD 之间进行数据分层。有关更多信息，请参阅[数据分层](data-tiering.md)。
+ **ElastiCache 适用于 Redis OSS 的 6.0 版（增强版）**

  您希望使用基于角色的访问控制对用户进行身份验证。

  有关更多信息，请参阅 [Redis OSS 版本 6.0（加强版）](engine-versions.md#redis-version-6.0)。


**Memcached、Valkey 或 Redis OSS（已禁用集群模式）和 Valkey 或 Redis OSS（已启用集群模式）的比较摘要**  

|  |  Memcached  |  Valkey 或 Redis OSS（已禁用集群模式）  |  Valkey 或 Redis OSS（已启用集群模式）  | 
| --- |--- |--- |--- |
| 引擎版本\+ | 1.4.5 及更高版本 | 4.0.10 及后续版本 | 4.0.10 及后续版本 | 
| 数据类型 | 简便  | 2.8.x - 复杂 \* | 3.2.x 及更高版本 - 复杂 | 
| 复杂 | 
| 数据分区 | 是 | 否 | 是 | 
| 集群是可修改的 | 支持 | 是 | 3.2.10 及更高版本 - 有限 | 
| 在线重新分片 | 否 | 否 | 3.2.10 和后续版本 | 
| 加密 | 在途 1.6.12 及更高版本 | 4.0.10 及后续版本 | 4.0.10 及后续版本 | 
| 数据分层 | 否 | 6.2 及更高版本 | 6.2 及更高版本 | 
| 内存效率 | 否 | Valkey 8.0 及更高版本 | Valkey 8.0 及更高版本 | 
| 布隆过滤器 | 否 | Valkey 8.1 及更高版本 | Valkey 8.1 及更高版本 | 
| 向量搜索 | 否 | Valkey 8.2 及更高版本 | Valkey 8.2 及更高版本 | 
| Full-text 搜索 | 否 | Valkey 9.0 及更高版本 | Valkey 9.0 及更高版本 | 
| 混合搜索（文本 \+ 矢量） | 否 | Valkey 9.0 及更高版本 | Valkey 9.0 及更高版本 | 
| 聚合管道 | 否 | Valkey 9.0 及更高版本 | Valkey 9.0 及更高版本 | 
| 哈希字段过期 | 否 | Valkey 9.0 及更高版本 | Valkey 9.0 及更高版本 | 
| 集群模式下的编号数据库 | 否 | N/A | Valkey 9.0 及更高版本 | 
| 合规性认证 | 
| --- |
| 合规性认证     FedRAMP<br />    HIPAA<br />    PCI DSS |   是 - 1.6.12 及更高版本<br />是 - 1.6.12 及更高版本<br />是 |   4.0.10 及后续版本<br />4.0.10 及后续版本<br />4.0.10 及后续版本 |   4.0.10 及后续版本<br />4.0.10 及后续版本<br />4.0.10 及后续版本 | 
| Multi-threaded | 是 | 否 | 否 | 
| 节点类型升级 | 否 | 是 | 是 | 
| 引擎升级 | 支持 | 是 | 是 | 
| 高可用性 (复制) | 否 | 是 | 是 | 
| 自动失效转移 | 否 | 可选 | 必需 | 
| Pub/Sub 能力 | 否 | 是 | 是 | 
| 排序集 | 否 | 是 | 是 | 
| 备份和还原 | 仅适用于无服务器缓存，不适用于基于节点的集群 | 支持 | 是 | 
| 地理空间索引 | 否 | 4.0.10 及后续版本 | 是 | 
| 备注： | 
| 字符串、对象（如数据库） | 
| \* 字符串、集、排序集、列表、哈希、位图、hyperloglog | 
| 字符串、集、排序集、列表、哈希、位图、hyperloglog、地理空间索引 | 
| \+ 不包括已弃用、已达到或即将到期的版本。 | 

为集群选择引擎后，建议您使用该引擎的最新版本。有关更多信息，请参阅 [受支持的节点类型](CacheNodes.SupportedTypes.md)。