AWS ElastiCache - 概述
ElastiCache 是一个分布式缓存环境,通过使用基于云的缓存来提供对数据的更快访问。直接从数据库或通过远程 API 调用查询数据比从缓存查询数据慢得多。AWS 提供了 ElastiCache 服务,该服务具有高性能、可扩展性和成本效益。它消除了与管理分布式缓存相关的复杂性。
ElastiCache 的用例
以下是利用 ElastiCache 以经济高效的方式快速查询的一些用例。
实时分析 - 当客户在线购物时,产品推荐需要在客户仍在浏览目录时立即生成。这需要将客户已选择的现有产品存储在缓存中并实时分析,以推荐下一组产品。
消息管理 - 当通过某些渠道向订阅者发送消息时,总有一些订阅者取消订阅,另一些订阅者加入特定渠道。如果没有缓存机制,由于延迟,消息可能会丢失或放错位置。因此,ElastiCache 有助于保持订阅状态的最新和准确。
排行榜 - 在游戏行业中,玩家得分的积分和他们在排行榜上的位置会不断更新。这需要持续更新,并且这里非常需要缓存才能能够持续显示不断变化的领导者位置。
ElastiCache 内容
并非所有内容都可以也不需要缓存。因此,下面讨论了影响需要缓存哪种内容的各种因素。
数据库内容 - 经过复杂且昂贵的查询处理后获取的内容绝对是缓存的候选对象。它通过避免重复查询处理来减少延迟,并降低数据库磁盘读/写成本。
频繁访问的数据 - 即使某种数据不涉及昂贵的查询,如果它比其他数据块更频繁地访问,也可能需要缓存。
访问模式 - 如果数据变化过于频繁,则缓存没有用。因此,我们需要寻找用户相对静态但经常需要的数据的访问方式。
对陈旧数据的容忍度 - 一旦缓存,数据就会开始变得陈旧,直到再次读取。在这种情况下,如果需要数据的应用程序对陈旧数据容忍度低,则缓存无济于事。例如,当您购买股票时,价格需要在此刻准确,因此不需要缓存。但是昨天的收盘价将在今天的计算中频繁参考,它是静态的,需要缓存。
ElastiCache 的组件
AWS 提供的 ElastiCache 具有以下重要组件。我们将在后续章节中了解它们的配置和使用。
节点 - 节点是安全、网络连接的 RAM 的固定大小的块。每个缓存节点都有自己的域名服务 (DNS) 名称和端口。
用于 Redis 分片的 ElastiCache - 它是一组 1 到 6 个相关节点。一个集群可以有 1 到 90 个分片。
用于 Redis 集群的 ElastiCache - Redis 集群是 1 个或多个用于 Redis 分片的 ElastiCache 的逻辑分组。数据在启用了 Redis(集群模式)的集群中的分片之间进行分区。
用于 Redis 端点的 ElastiCache - 它是应用程序用于连接到 ElastiCache 节点或集群的唯一地址。
ElastiCache 的功能
ElastiCache 的各种功能有助于我们规划正确的配置和成本估算。重要的功能如下。
用于 Redis 复制的 ElastiCache - 复制是通过将 2 到 6 个节点分组到一个分片中来实现的。其中一个节点是读/写主节点。所有其他节点都是只读副本节点。
区域和可用区 - 缓存可以在满足您业务需求的任何位置构建和使用。AWS ElastiCache 服务可在全球多个 AWS 区域使用。
ElastiCache 参数组 - ElastiCache 参数组是您可以应用于集群的引擎特定参数的命名集合。它们用于控制内存使用、逐出策略和项目大小等。
用于 Redis 安全性的 ElastiCache - 您可以通过使用子网组或安全组来控制可以访问集群的 Amazon EC2 实例。