Amazon ElastiCache
全托管提供 Redis 或 Memcached 的内存缓存服务,实现微秒级响应延迟
概述
Amazon ElastiCache 是一项全托管的内存缓存服务,支持 Redis 和 Memcached 两种引擎。通过将频繁访问的数据存储在内存中,将数据库查询延迟从毫秒级降低到微秒级。适用于会话存储、排行榜、实时分析、消息队列等需要极低延迟的场景。
Redis 与 Memcached - 由数据结构需求决定的选择
Redis 支持丰富的数据结构(String、Hash、List、Set、Sorted Set、Stream 等),支持持久化、复制、集群和 Lua 脚本。适合需要复杂数据操作的场景:排行榜(Sorted Set)、会话存储(Hash)、消息队列(Stream/List)、地理空间查询(Geo)。Memcached 是纯粹的键值缓存,支持多线程,适合简单的缓存场景且需要水平扩展。选择标准:如果需要数据结构、持久化或复制,选 Redis;如果只需要简单的键值缓存且追求多线程性能,选 Memcached。
Lazy Loading 与 Write-Through 缓存策略
Lazy Loading(延迟加载)在缓存未命中时从数据库加载数据并写入缓存。优点是只缓存实际被请求的数据,缺点是首次请求有额外延迟。Write-Through(直写)在数据写入数据库时同步写入缓存。优点是缓存数据始终最新,缺点是写入延迟增加且可能缓存不被读取的数据。实务中通常组合使用:Write-Through 确保热数据最新,Lazy Loading 处理冷数据的首次访问。TTL(过期时间)是两种策略的补充,防止缓存数据无限期过时。
集群模式与 Global Datastore
Redis 集群模式将数据分片到多个节点,突破单节点的内存和吞吐量限制。每个分片有一个主节点和最多 5 个副本节点,支持自动故障转移。集群最多支持 500 个节点(250 个分片 × 2 副本)。Global Datastore 提供跨区域的全托管复制,主区域的写入在 1 秒内复制到辅助区域。适合全球分布式应用的低延迟读取和灾难恢复。故障转移到辅助区域时,辅助区域提升为主区域,RPO 通常小于 1 秒。