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