比较 Valkey、Memcached 和 Redis OSS 基于节点的集群
Amazon ElastiCache 支持 Valkey、Memcached 和 Redis OSS 缓存引擎。每种引擎都有自己的优点。使用本主题中的信息有助于您选择出最能满足您的要求的引擎和版本。
重要
创建基于节点的缓存群集或复制组后,您可以升级到较新的引擎版本,但不能降级到较旧的引擎版本。如果您要使用较旧的引擎版本,必须删除现有的基于节点的缓存群集或复制组,并使用较旧的引擎版本重新创建。
从表面上看,这两个引擎十分类似。其中的每个引擎都是一个内存中键/值存储。不过,这两者实际上有很大差异。
如果您存在以下情况,请选择 Memcached:
-
您需要使模型尽可能简单。
-
您需要运行具有多个核心或线程的大型节点。
-
您需要具备缩放能力,随着系统需求的增加和减少来添加和移除节点。
-
您需要缓存对象。
如果以下情况适用于您,请选择使用 Valkey 或 Redis OSS 的 ElastiCache:
-
ElastiCache for Valkey v7.2 或 ElastiCache for Redis OSS v7.0(加强版)
您想使用函数
、分片发布/订阅 或 ACL 改进 。有关更多信息,请参阅 Redis OSS 版本 7.0(加强版)。 -
ElastiCache for Redis OSS v6.2(加强版)
您希望能够使用 r6gd 节点类型在内存和 SSD 之间进行数据分层。有关更多信息,请参阅数据分层。
-
ElastiCache for Redis OSS v6.0(加强版)
您希望使用基于角色的访问控制对用户进行身份验证。
有关更多信息,请参阅 Redis OSS 版本 6.0(加强版)。
-
ElastiCache for Redis OSS v5.0.0(加强版)
您需要使用 Redis OSS 流
,它是一个日志数据结构,允许生成者实时附加新项,并允许使用者以阻塞或非阻塞方式使用消息。 有关更多信息,请参阅 Redis OSS 版本 5.0.0(加强版)。
-
ElastiCache for Redis OSS v4.0.10(加强版)
支持加密以及从您的 Valkey 或 Redis OSS(已启用集群模式)集群动态添加或移除分片。
有关更多信息,请参阅 Redis OSS 版本 4.0.10(加强版)。
以下版本已弃用、已达到使用寿命或即将达到使用寿命。
-
ElastiCache for Redis OSS v3.2.10(加强版)
支持从您的 Valkey 或 Redis OSS(已启用集群模式)集群动态添加或移除分片的功能。
重要
目前 ElastiCache for Redis OSS 3.2.10 不支持加密。
有关更多信息,请参阅下列内容:
-
Redis OSS 的在线重新分片最佳实践,有关更多信息,请参阅:
-
有关扩展 Redis OSS 集群的更多信息,请参阅扩展。
-
ElastiCache for Redis OSS v3.2.6(加强版)
如果您需要较旧 Redis OSS 版本的功能外加以下功能,请选择 3.2.6:
-
传输中加密。有关更多信息,请参阅 Amazon ElastiCache for Redis OSS 传输中加密。
-
静态加密。有关更多信息,请参阅 Amazon ElastiCache for Redis OSS 静态加密。
-
-
ElastiCache for Redis OSS(已启用集群模式)v3.2.4
如果需要 2.8.x 的功能外加以下功能,请选择 3.2.4(集群模式):
-
您需要在 2 到 500 个节点组(仅限集群模式)之间对数据分区。
-
您需要地理空间索引(集群模式或非集群模式)。
-
您不需要支持多个数据库。
-
-
ElastiCache for Redis OSS(非集群模式)2.8.x 和 3.2.4(加强版)
如果您存在以下情况,请选择 2.8.x 或 3.2.4(非集群模式):
-
您需要复杂数据类型,如字符串、哈希、列表、集、排序集和位图。
-
您需要对内存数据集进行排序或排名。
-
您需要持久保留密钥库。
-
您需要为读取操作密集型应用程序将主集群中的数据复制到一个或多个只读副本。
-
您需要在主节点出现故障的情况下执行自动故障转移。
-
您需要发布和订阅 (pub/sub) 功能 – 向客户端通知服务器上发生的事件。
-
您需要为基于节点的集群以及无服务器缓存提供备份和还原功能。
-
您需要支持多个数据库。
-
| Memcached | Valkey 或 Redis OSS(已禁用集群模式) | Valkey 或 Redis OSS(已启用集群模式) | |
|---|---|---|---|
| Engine versions+ | 1.4.5 and later | 4.0.10 and later | 4.0.10 and later |
| Data types | Simple ‡ | 2.8.x - Complex * | 3.2.x and later - Complex † |
| Complex † | |||
| Data partitioning | Yes | No | Yes |
| Cluster is modifiable | Yes | Yes | 3.2.10 and later - Limited |
| Online resharding | No | No | 3.2.10 and later |
| Encryption | in-transit 1.6.12 and later | 4.0.10 and later | 4.0.10 and later |
| Data tiering | No | 6.2 and later | 6.2 and later |
| 合规性认证 | |||
| Compliance Certification
FedRAMP HIPAA PCI DSS |
是 - 1.6.12 及更高版本 是 - 1.6.12 及更高版本 是 |
4.0.10 及后续版本 4.0.10 及后续版本 4.0.10 及后续版本 |
4.0.10 及后续版本 4.0.10 及后续版本 4.0.10 及后续版本 |
| Multi-threaded | Yes | No | No |
| Node type upgrade | No | Yes | Yes |
| Engine upgrading | Yes | Yes | Yes |
| High availability (replication) | No | Yes | Yes |
| Automatic failover | No | Optional | Required |
| Pub/Sub capabilities | No | Yes | Yes |
| Sorted sets | No | Yes | Yes |
| Backup and restore | For serverless caches only, not applicable to node-based clusters | Yes | Yes |
| Geospatial indexing | No | 4.0.10 and later | Yes |
| 注意: | |||
| ‡ string, objects (like databases) | |||
| * string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog | |||
| † string, sets, sorted sets, lists, hashes, bitmaps, hyperloglog, geospatial indexes | |||
| + Excludes versions which are deprecated, have reached or soon to reach end of life. | |||
为集群选择引擎后,建议您使用该引擎的最新版本。有关更多信息,请参阅 受支持的节点类型。