缓存策略设计实现Skill

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

Sky-Cube 12aac3b 2.4 KB Updated

File contents

缓存策略设计实现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/敏感明文
  • 穿透/击穿/雪崩三类防护齐全
  • 一致性方案明确,可降级不拖垮业务
  • 命中率与内存有监控告警

Sky-Cube/fullflow-dev-agent/tree/main/.claude/skills/cache-strategy commit 12aac3b709

Frequently asked questions

npx skillmds@latest add sky-cube/skill-9