缓存策略架构师
来自 Wikiprompt,自由的提示词百科全书
缓存策略架构师 用于设计高性能多层缓存架构(使用Redis、Memcached、CDN等)的综合系统提示。包括面向任务的执行、核心任务、失效模式和详细检查清单。
提示词内容收藏
🌐
# TODO_caching-architect.md
## 上下文
- 应用性能需求:当前读延迟高,写放大,热点数据访问频繁,需要多层缓存架构以降低延迟并提升吞吐量。
- 数据访问模式:读/写比例约为 80:20;热点数据占 20% 但访问量占 80%;需要强一致性关键数据,允许最终一致性的非关键数据。
- 基础设施约束:现有 Redis 集群(版本 6.2)、Memcached 1.6、CDN 使用 CloudFront;网络延迟在区域间较高;内存资源有限。
## 缓存架构计划
### 1. 缓存层设计
- [ ] **CACHE-PLAN-1.1 [CDN 层]**:
- 层:CDN
- 技术:CloudFront (AWS)
- 范围:静态资产(图片、CSS/JS)、动态页面缓存(使用 Edge Side Includes)
- 配置:TTL = 3600 秒(静态),s-maxage = 600 秒(动态),stale-while-revalidate = 86400 秒;启用压缩,使用 Origin Shield 减少源站负载
- [ ] **CACHE-PLAN-1.2 [应用层缓存]**:
- 层:应用缓存
- 技术:Caffeine(Java 进程内缓存)
- 范围:会话数据、用户配置、频繁读取的配置项
- 配置:最大容量 1000 条,TTL = 300 秒,淘汰策略为 LRU
- [ ] **CACHE-PLAN-1.3 [分布式缓存层]**:
- 层:分布式缓存
- 技术:Redis Cluster(6.2)
- 范围:热点数据(商品详情、用户会话)、API 响应缓存、数据库查询结果缓存
- 配置:maxmemory = 8GB,淘汰策略 allkeys-lfu,TTL 按数据类型设置(见下文),启用 TLS 加密,AUTH 认证
- [ ] **CACHE-PLAN-1.4 [数据库缓存层]**:
- 层:数据库缓存
- 技术:MySQL 查询缓存(禁用,因性能问题) + 物化视图 + 只读副本
- 范围:聚合查询、报表数据
- 配置:物化视图每 5 分钟刷新,只读副本延迟容忍度 2 秒
### 2. 缓存项
- [ ] **CACHE-ITEM-2.1 [用户会话缓存]**:
- 描述:缓存用户会话数据(用户 ID -> 会话对象)
- 失效策略:写穿透(每次登录/登出时更新缓存)
- TTL 与淘汰:TTL = 1800 秒,过期后自动删除;淘汰策略为 allkeys-lfu
- 验证:检查会话数据是否在缓存中命中,且与数据库一致
- [ ] **CACHE-ITEM-2.2 [商品详情缓存]**:
- 描述:缓存商品详情(商品 ID -> 详情 JSON),含价格、库存、描述
- 失效策略:写后回写(库存变更时异步更新缓存,允许短暂不一致)
- TTL 与淘汰:TTL = 600 秒,使用 jittered TTL(±10%)预防雪崩;淘汰策略为 allkeys-lfu
- 验证:通过监控商品详情页的缓存命中率,确保 >90%;在库存更新后,<5 秒内缓存更新
- [ ] **CACHE-ITEM-2.3 [API 响应缓存]**:
- 描述:缓存高频 API 响应(如产品列表、搜索建议)
- 失效策略:旁路缓存(应用层手动管理,数据变更时主动失效)
- TTL 与淘汰:TTL = 120 秒,淘汰策略为 volatile-ttl
- 验证:使用一致性哈希分配键,确保热点键均匀分布;监控 p99 延迟
- [ ] **CACHE-ITEM-2.4 [配置缓存]**:
- 描述:缓存全局配置(键值对)
- 失效策略:事件驱动(配置变更时发布失效事件到 Redis Streams)
- TTL 与淘汰:TTL = 3600 秒,但事件驱动失效优先;淘汰策略为 allkeys-lfu
- 验证:配置变更后,所有节点在 1 秒内收到失效事件并重新加载
### 3. 代码变更建议
无代码变更,仅配置和架构调整。
### 4. 命令
**本地运行**:
- 启动 Redis 集群:`redis-cli --cluster create ...`
- 设置内存策略:`CONFIG SET maxmemory-policy allkeys-lfu`
- 测试缓存雪崩:使用 wrk 模拟并发请求,观察 TTL 抖动策略
**CI 中**:
- 缓存命中率基准测试:`./benchmark/cache-hit-rate.sh`
- 一致性验证:`./integration/cache-consistency.sh`
## 质量保证任务清单
- [ ] 所有缓存层已记录技术、配置和数据流
- [ ] 每种缓存数据类型的失效策略已定义
- [ ] TTL 值已根据数据波动性分析证明合理性
- [ ] 故障场景已处理,包括优雅降级路径
- [ ] 监控和告警覆盖命中率、延迟、内存和驱逐指标
- [ ] 缓存键 schema 已记录,包括命名约定和版本控制
- [ ] 性能基准测试验证缓存满足目标 SLA
用法
此提示词专为 coding 设计。复制上方内容并粘贴到你常用的 AI 工具中。
为获得最佳效果,可将占位符(方括号或大写字母标示)替换为你的具体需求。
讨论
0 条评论