本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
比较 Valkey、Redis 和 Memcache OSS d 自己设计的缓存
亚马逊 ElastiCache 支持 Valkey、Redis 和 Memcache OSS d 缓存引擎。每种引擎都有自己的优点。使用本主题中的信息有助于您选择出最能满足您的要求的引擎和版本。
重要
创建缓存、自行设计的集群或复制组后,您可以升级到较新的引擎版本,但不能降级到较旧的引擎版本。如果要使用较旧的引擎版本,则必须删除现有缓存、自行设计的集群或复制组,然后使用较早的引擎版本重新创建它。
从表面上看,这两个引擎十分类似。其中的每个引擎都是一个内存中键/值存储。不过,这两者实际上有很大差异。
如果您存在以下情况,请选择 Memcached:
-
您需要使模型尽可能简单。
-
您需要运行具有多个核心或线程的大型节点。
-
您需要具备缩放能力,随着系统需求的增加和减少来添加和移除节点。
-
您需要缓存对象。
ElastiCache 如果符合以下条件,请选择 Valk OSS ey 或 Redis:
-
ElastiCache 使用 Valkey 7.2 或 Redis OSS 版本 7.0(增强版)
你想使用函数
、Sharded Pub/Sub 或改进 。ACL 有关更多信息,请参阅 Redis OSS 版本 7.0(增强版)。 -
ElastiCache (RedisOSS) 版本 6.2(增强版)
您希望能够在内存和SSD使用 r6gd 节点类型之间对数据进行分层。有关更多信息,请参阅数据分层。
-
ElastiCache (RedisOSS) 版本 6.0(增强版)
您希望使用基于角色的访问控制对用户进行身份验证。
有关更多信息,请参阅 Redis OSS 版本 6.0(增强版)。
-
ElastiCache (RedisOSS) 版本 5.0.0(增强版)
你想使用 Redis stre OSS ams,这是
一种日志数据结构,它允许生产者实时添加新项目,还允许消费者以阻塞或非阻塞方式使用消息。 有关更多信息,请参阅 Redis OSS 版本 5.0.0(增强版)。
-
ElastiCache (RedisOSS) 版本 4.0.10(增强版)
支持加密以及在 Valkey 或 RedisOSS(已启用集群模式)集群中动态添加或删除分片。
有关更多信息,请参阅 Redis OSS 版本 4.0.10(增强版)。
以下版本已弃用、已达到使用寿命或即将达到使用寿命。
-
ElastiCache (RedisOSS) 版本 3.2.10(增强版)
支持在 Valkey 或 RedisOSS(已启用集群模式)集群中动态添加或删除分片的功能。
重要
目前 ElastiCache (RedisOSS) 3.2.10 不支持加密。
有关更多信息,请参阅下列内容:
-
Redis 的在线重新分片最佳实践OSS,有关更多信息,请参阅以下内容:
-
有关扩展 Redis OSS 集群的更多信息,请参阅扩展。
-
ElastiCache (RedisOSS) 版本 3.2.6(增强版)
如果您需要早期 Redis OSS 版本的功能以及以下功能,请选择 ElastiCache (RedisOSS) 3.2.6:
-
传输中加密。有关更多信息,请参阅亚马逊 ElastiCache (RedisOSS) 传输中加密。
-
静态加密。有关更多信息,请参阅亚马逊 ElastiCache (RedisOSS) 静态加密。
-
-
ElastiCache (RedisOSS)(已启用集群模式)版本 3.2.4
如果您需要 Redis OSS 2.8.x 的功能以及以下功能,请选择 Redis OSS 3.2.4(集群模式):
-
您需要在 2 到 500 个节点组(仅限集群模式)之间对数据分区。
-
您需要地理空间索引(集群模式或非集群模式)。
-
您不需要支持多个数据库。
-
-
ElastiCache (RedisOSS)(非集群模式)2.8.x 和 3.2.4(增强)
如果满足以下条件,请选择 Redis OSS 2.8.x 或 Redis OSS 3.2.4(非集群模式):
-
您需要复杂数据类型,如字符串、哈希、列表、集、排序集和位图。
-
您需要对内存数据集进行排序或排名。
-
您需要持久保留密钥库。
-
您需要为读取操作密集型应用程序将主集群中的数据复制到一个或多个只读副本。
-
您需要在主节点出现故障的情况下执行自动故障转移。
-
您需要发布和订阅 (pub/sub) 功能 – 向客户端通知服务器上发生的事件。
-
您需要为自己设计的集群以及无服务器缓存提供备份和还原功能。
-
您需要支持多个数据库。
-
Memcached | Valkey 或 RedisOSS(已禁用集群模式) | Valkey 或 RedisOSS(已启用集群模式) | |
---|---|---|---|
引擎版本+ | 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 及更高版本 |
合规性认证 | |||
合规性认证 美联储 RAMP 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 及后续版本 |
多线程 | 是 | 否 | 否 |
节点类型升级 | 否 | 是 | 是 |
引擎升级 | 是 | 是 | 是 |
高可用性 (复制) | 否 | 是 | 是 |
自动失效转移 | 否 | 可选 | 必需 |
发布/订阅功能 | 否 | 是 | 是 |
排序集 | 否 | 是 | 是 |
备份和还原 | 仅适用于无服务器 Memcached,不适用于自行设计的 Memcached 集群 | 是 | 是 |
地理空间索引 | 否 | 4.0.10 及后续版本 | 是 |
备注: | |||
‡字符串、对象(如数据库) | |||
* 字符串、集、排序集、列表、哈希、位图、hyperloglog | |||
字符串、集、排序集、列表、哈希、位图、hyperloglog、地理空间索引 | |||
+ 不包括已弃用、已达到或即将到期的版本。 |
为集群选择引擎后,建议您使用该引擎的最新版本。有关更多信息,请参阅 受支持的节点类型。