# 缓存策略设计实现Skill

> Redis 缓存模式、key 设计、失效策略、穿透/击穿/雪崩防护。当需要设计实现缓存方案(模式选择、key 规范、失效与容灾防护)时使用。

- Skill: `sky-cube/skill-9` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sky-cube/skill-9`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sky-cube/skill-9/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Sky-Cube (https://skillmd.com/u/sky-cube)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sky-cube/skill-9

---

# 缓存策略设计实现Skill

## 适用场景
引入或治理 Redis 缓存:缓存模式选择、key 设计规范、失效策略、穿透/击穿/雪崩防护、一致性处理与监控。

## 执行步骤
1. 模式选择:读多写少→Cache Aside(旁路缓存,最常用);对一致性敏感→更新 DB 后删缓存+延迟双删兜底;写多读少不建议缓存。
2. key 设计:统一格式 `业务域:子域:业务ID[:版本]`,禁止过短冲突与过长无意义;禁止大 key(单 value 超过 10KB 需评估)、禁止全量扫描命令。
3. 失效策略:TTL + 主动删除双轨;TTL 按数据变更频率分级设定;版本号用于批量失效。
4. 穿透防护:空值缓存(短 TTL)兜底,高并发热点用布隆过滤器预判;非法参数在入口校验拦截。
5. 击穿防护:热点 key 用互斥锁重建或逻辑过期(需验证适用场景),重建仅一个线程执行,其余等待或返回旧值。
6. 雪崩防护:TTL 加随机抖动、多级缓存(本地+Redis)、限流降级保底。
7. 一致性:先更新 DB 后删缓存;延迟双删兜底;强一致场景禁用缓存或走 MQ 异步刷新。
8. 监控:命中率、key 数量、大 key、内存使用率、慢查询告警。

## 规范要点
- 缓存必须可降级:Redis 不可用时业务可走 DB 或限流保护,禁止缓存故障拖垮全链路。
- 序列化统一(JSON/Protobuf 选一种),版本变更兼容旧数据。
- 禁止缓存用户敏感信息明文;敏感数据加密或只缓存脱敏字段。
- 缓存值禁止存储大对象与完整列表,拆分按需缓存。
- key 必须带业务域前缀,便于清理、隔离与成本归属。
- 所有缓存操作设超时,禁止无超时阻塞业务线程。

## 输出模板
```
## 缓存方案
模式选择:Cache Aside 等 + 适用说明
key 规范表:业务域前缀/示例/过期策略
防护措施:穿透/击穿/雪崩各用了哪些手段
一致性方案:更新顺序 + 双删/刷新机制
监控指标:命中率目标 + 告警阈值
```

## 自检清单
- [ ] 模式与业务读写特性匹配
- [ ] key 规范统一,无大 key/敏感明文
- [ ] 穿透/击穿/雪崩三类防护齐全
- [ ] 一致性方案明确,可降级不拖垮业务
- [ ] 命中率与内存有监控告警

