Skip to content
返回云服务

AWS ElastiCache Redis/Memcached

托管内存缓存 — Redis(集群模式、HA、TLS)或 Memcached,亚毫秒读。

AWS进阶

为什么

ElastiCache 托管 Redis/Memcached — 补丁、故障转移、备份。热数据亚毫秒读。Redis 集群模式分片 + 复制。免费:750 小时 t4g.micro。

何时使用

缓存 DB 查询、会话存储、排行榜、限流时用。避免主存储(无持久性)或冷数据(用 DB)。

如何做

1. 创建 — aws elasticache create-cache-cluster --engine redis 2. 集群模式 — 分片 + 副本、多 AZ 故障转移 3. 安全 — 安全组、仅 VPC、传输 TLS、静态 KMS 4. 连接 — redis-cli -h primary.xxxx.0001.use1.cache.amazonaws.com 5. 故障转移 — 节点失败自动、30-60 秒、应用须重连 6. 备份 — 每日快照、恢复到新集群 7. Global Datastore — 跨区域复制、<1 秒延迟 8. Serverless — Redis Serverless、自动伸缩、无容量规划

示例

# 多 AZ Redis 集群 aws elasticache create-replication-group \ --replication-group-id prod-redis \ --replication-group-description "生产缓存" \ --engine redis --cache-node-type cache.t4g.micro \ --num-cache-clusters 2 \ --automatic-failover-enabled \ --multi-az-enabled \ --at-rest-encryption-enabled \ --transit-encryption-enabled // Node — ioredis 带故障转移 import Redis from "ioredis"; const redis = new Redis.Cluster( [{ host: "prod-redis.xxxx.use1.cache.amazonaws.com", port: 6379, tls: {} }], { redisOptions: { password: process.env.REDIS_AUTH, tls: {} } } ); await redis.setex("user:123", 300, JSON.stringify(user)); // 5 分钟 TTL

常见问题

  • ⚠内存耗尽 — 设 maxmemory-policy allkeys-lru、监控 used_memory
  • ⚠故障转移 30-60 秒 — 应用须处理重连、用 ioredis Cluster 自动
  • ⚠加密需 TLS — 非 TLS 客户端失败、用 stunnel 或升级

最佳实践

  • ✓用 Redis Serverless — 自动伸缩、无容量规划、按用付费
  • ✓设 LRU 驱逐 — allkeys-lru、防 OOM、驱逐最少使用
  • ✓多区域用 Global Datastore — 跨区域只读副本、<1 秒延迟

常见问题解答

什么是AWS ElastiCache Redis/Memcached?它解决什么问题?

托管内存缓存 — Redis(集群模式、HA、TLS)或 Memcached,亚毫秒读。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手AWS ElastiCache Redis/Memcached?

两步即可跑通:① 创建 — aws elasticache create-cache-cluster --engine redis;② 集群模式 — 分片 + 副本、多 AZ 故障转移。建议先用免费套餐验证流程,再接入生产环境。

AWS ElastiCache Redis/Memcached 最容易踩的坑是什么?

最高频的问题是:内存耗尽 — 设 maxmemory-policy allkeys-lru、监控 used_memory。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

AWS ElastiCache Redis/Memcached 的最佳实践有哪些?

AWS ElastiCache Redis/Memcached 的最佳实践包括:用 Redis Serverless — 自动伸缩、无容量规划、按用付费;设 LRU 驱逐 — allkeys-lru、防 OOM、驱逐最少使用;多区域用 Global Datastore — 跨区域只读副本、<1 秒延迟。其中首条「用 Redis Serverless — 自动伸缩、无容量规划、按用付费」应作为团队默认规范写入 IaC 模板。

AWS ElastiCache Redis/Memcached 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS ElastiCache Redis/Memcached 多数提供免费套餐,先在免费额度内验证再放量。