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