比较 Memcached 和 Redis 自行设计缓存 - Amazon ElastiCache
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

比较 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 不支持加密。

    有关更多信息,请参阅下列内容:

  • ElastiCache for Redis 版本 3.2.6(加强版)

    如果您需要早期 Redis 版本的功能外加以下功能,请选择 ElastiCache for Redis 3.2.6:

  • 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 版本