在AWS Elasticache上使用memcached或Redis

3
我正在AWS上开发一个应用程序,使用AWS Elasticache进行缓存。我对使用memcached还是redis感到困惑。
我阅读了关于redis 3.0.2更新的信息,以及它如何与memcached现在相当。 https://groups.google.com/forum/#!msg/redis-db/dO0bFyD_THQ/Uoo2GjIx6qgJ 但是我在亚马逊AWS FAQ页面上阅读到,亚马逊Elasticache不支持3.0.2版本。他们目前支持Redis 2.6.13、2.8.6和2.8.19。 http://aws.amazon.com/elasticache/faqs/(日期为2015年6月10日) 我已经阅读了AWS有关Elasticache的白皮书。但他们没有指定他们提供建议的redis版本。

我应该如何决定在创建任何应用程序时使用memcached还是redis?在使用redis或memcached之前需要注意哪些要点?我是否应该考虑亚马逊即将更新redis版本并继续使用redis?

p.s. 我是一名初学者开发人员。


你们正在进行什么类型的缓存以及为了什么目的?是针对数据库查询、整个网页还是其他?此外,你们是否也想让 Elasticache 处理用户会话? - John Wheal
2个回答

9

实际上,这取决于使用情况。

如果您具有以下要求,请选择Memcached:

  • 您希望使用最简单的模型。
  • 您需要运行具有多个核心或线程的大型节点。
  • 您需要能够扩展/收缩,随着系统需求的增加和减少添加和删除节点。
  • 您希望将数据分区到多个分片中。
  • 您需要缓存对象,例如数据库。

如果您具有以下要求,请选择Redis:

  • 您需要复杂的数据类型,例如字符串、哈希、列表和集合。
  • 您需要对内存中的数据集进行排序或排名。
  • 您希望保留键存储的持久性。
  • 您希望将数据从主节点复制到一个或多个只读副本以用于读密集型应用程序。
  • 如果主节点失败,您需要自动故障转移。
  • 您希望具备发布和订阅(pub/sub)功能-以通知客户端服务器上的事件。
  • 您需要备份和恢复功能。

这里有一篇有趣的文章来自aws:https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf


1
这是比较Memcached和Redis的主要讨论Memcached vs. Redis?

AWS和Azure肯定会在未来升级到更新版本的Redis,但它们何时以及如何推出只取决于它们自己。同时,您可以自行安装Redis 3.0.2,但需要确定您是否真正需要提供集群支持的Redis 3。如果您不需要集群,则可以使用Elasticache中的2.8版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接