AWS ElastiCache - 概述

ElastiCache 是一种分布式缓存环境,通过使用基于云的缓存来提供更快的数据访问。直接从数据库或通过远程 API 调用查询数据比从缓存查询数据慢得多。AWS 提供的 ElastiCache 服务具有高性能、可扩展性和成本效益。它消除了与管理分布式缓存相关的复杂性。

ElastiCache 的用例

以下是一些利用 ElastiCache 以经济高效的方式快速查询的用例。

  • 实时分析 − 当客户进行在线购物时,必须在客户仍在浏览目录时立即生成产品推荐。这需要将客户已经选择的现有产品存储在缓存中,并进行实时分析,以推荐下一组产品。

  • 消息管理 − 当消息通过某些渠道发送给订阅者时,总会有一些订阅者取消订阅,而另一些订阅者加入特定渠道。如果没有缓存机制,可能会因延迟而丢失或放错消息。因此,ElastiCache 有助于保持订阅状态的最新和准确。

  • 排行榜 − 在游戏行业中,玩家获得的积分和他们在排行榜上的位置会不断更新。这需要持续更新,而缓存在这里非常需要,以便能够持续显示不断变化的领导位置。

ElastiCache 内容

并非所有东西都可以也不需要缓存。因此,下面将讨论影响需要缓存哪些内容的各种因素。

  • 数据库内容 − 经过复杂且昂贵的查询处理后获取的内容绝对是缓存的候选对象。它通过避免重复查询处理来减少延迟,并降低数据库磁盘读写的成本。

  • 频繁访问的数据 − 即使有一种类型的数据不涉及昂贵的查询,如果它比其他数据块的访问频率更高,也可能需要缓存。

  • 访问模式 − 如果数据更改过于频繁,则缓存没有用。因此,我们需要寻找访问的数据相对静态但用户经常需要的方式。

  • 陈旧容忍度 −一旦缓存,数据就会开始变得陈旧,直到再次读取。在这种情况下,如果需要数据的应用程序对陈旧数据的容忍度很低,那么缓存就无济于事了。例如,当您购买股票时,价格需要当时准确,因此不需要缓存。但昨天的收盘价(将经常用于今天的计算)是静态的,需要缓存。

ElastiCache 的组件

AWS 配置的 ElastiCache 具有以下重要组件。我们将在后续章节中看到它们的配置和使用。

  • 节点 − 节点是固定大小的安全、网络连接 RAM 块。每个缓存节点都有自己的域名服务 (DNS) 名称和端口。

  • ElastiCache for Redis Shards −它是由一到六个相关节点组成的组。一个集群可以有 1 到 90 个分片。

  • ElastiCache for Redis 集群 − Redis 集群是一个或多个 ElastiCache for Redis 分片的逻辑分组。数据在 Redis(已启用集群模式)集群中的分片中进行分区。

  • ElastiCache for Redis 终端节点 −它是您的应用程序用于连接到 ElastiCache 节点或集群的唯一地址。

ElastiCache 的功能

ElastiCache 的各种功能可帮助我们规划正确的配置和成本估算。重要功能如下。

  • ElastiCache for Redis 复制 − 复制是通过将 2 到 6 个节点分组到分片中来实现的。其中一个节点是读/写主节点。所有其他节点都是只读副本节点。

  • 区域和可用区 − 可以在满足您业务需求的任何位置构建和使用缓存。AWS ElastiCache 服务在全球多个 AWS 区域提供。

  • ElastiCache 参数组 − ElastiCache 参数组是可应用于集群的引擎特定参数的命名集合。它们用于控制内存使用情况、驱逐策略和项目大小等。

  • ElastiCache for Redis 安全性 − 您可以使用子网组或安全组来控制可以访问您集群的 Amazon EC2 实例。