Amazon ElastiCache
ElastiCache for Memcached 用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用案例以及 ElastiCache 如何帮助

无论是提供最新资讯、产品目录还是销售活动的门票,速度都是关键。传输内容的速度对您的网站和业务的成功有很大的影响。《纽约时报》在 2012 年报道,“对于没有耐心的 Web 用户而言,一眨眼的功夫都显得太长,”用户会记下竞争网站之间的 250 毫秒(1/4 秒)的差异。他们将离开速度较慢的网站并转至速度较快的网站。Amazon 在 2007 年进行了一项测试 (引自网页加载时间与访客流失率的相关性),结果表明,加载时间每增加 100 毫秒 (1/10 秒),销售额就会减少 1%。当某人需要数据(无论是网页数据还是推动业务决策的报告数据)时,如果该数据已缓存,您便能更快地传输数据。您的公司是否能在不缓存网页的情况下以可能最短的延迟传输网页?

直观上显著的一点是,您需要缓存请求次数最多的项目。但您为何不缓存请求次数极少的项目? 甚至最优化的数据库查询或远程 API 调用的速度也比从内存中缓存检索平面密钥的速度慢得多。显著变慢是导致客户流失的原因。

下面的示例演示了使用 ElastiCache 提高应用程序的总体性能的一些方式。

内存中的数据缓存

内存中密钥值存储的主要目的是,提供对数据副本的超快 (毫秒级延迟) 的、低成本的访问。大部分数据存储具有经常访问但很少更新的数据区域。此外,查询数据库将始终比在密钥值对缓存中查找密钥更慢且成本更高。有一些数据库查询的执行成本非常高,例如,涉及跨多个表联接的查询或使用密集型计算的查询。通过对此类查询结果进行缓存,您只需为查询支付一次费用,便能快速地检索数据多次,而无需重新执行查询。

下图显示了 ElastiCache 缓存。

图像:ElastiCache 缓存

我应对哪些数据进行缓存?

在决定要缓存的数据时,请考虑这些因素:

速度和费用 – 与从缓存中获取数据相比,从数据库中获取数据始终更慢且费用更高。一些数据库查询原本就比其他查询更慢且费用更高。例如,在多个表上执行联接的查询要比简单的表查询更慢且费用更高。如果要使用速度慢且费用高的查询来获取所需数据,则该数据是要缓存的候选项。如果要使用相对快速且简单的查询来获取数据,则该数据可能仍是要缓存的候选项,具体取决于其他因素。

数据和访问模式 – 确定要缓存的数据还需要了解数据本身及其访问模式。例如,对快速变化或很少访问的数据进行缓存是没有意义的。为了使缓存更有意义,数据应相对静态且被频繁访问,例如社交媒体站点上的个人资料。相反,如果对数据进行缓存不会提供速度或成本优势,那么您将无需缓存数据。例如,对返回搜索结果的网页进行缓存是没有意义的,因为此类查询与结果几乎始终是唯一的。

过时 – 根据定义,缓存的数据是过时的数据,即使数据在特定环境中是未过时的,也应将其视为过时数据。在确定数据是否为要缓存的候选项时,您需要确定应用程序对过时数据的容忍性。您的应用程序也许能够在一种环境中容忍过时数据,但不能在另一种环境中容忍过时数据。例如,在网站上提供公开交易的股票价格时,过时性可能是可以接受的,并且将提供有关价格更新可能出现最多 n 分钟延迟的免责声明。但是,在向经纪人提供同一只股票的价格时,您需要实时数据来进行交易。

总之,在以下情况下,需要考虑对数据进行缓存:

  • 与缓存检索相比,获取数据的速度更慢且费用更高。

  • 访问数据的频率较高。

  • 数据是相对静态的,或者在数据快速变化的情况下,过时性不是重要问题。

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

ElastiCache 客户评价

要了解像 Airbnb、PBS、Esri 这样的企业和其他使用 Amazon ElastiCache 的企业如何改善客户体验,从而拓展业务,请参阅其他人如何使用 Amazon ElastiCache

您还可以观看 ElastiCache 视频 以了解更多 ElastiCache 客户使用案例。