关于 symfony-cache
面向 Symfony 开发的缓存配置与管理技能,涵盖过期策略、缓存池和适配器选择。还介绍按标签失效,以及避免昂贵计算在缓存过期时同时触发。
主要功能
- 01按访问模式选择缓存池和适配器
- 02通过 CacheInterface::get() 读取并设置过期时间
- 03按标签使缓存条目失效
- 04为昂贵计算启用提前过期
- 05检查失效行为与缓存击穿防护
适用场景
- 01缓存仓库查询结果或计算值
- 02缓存第三方服务的响应
- 03写入数据后使相关条目失效
- 04减少热点键过期时的并发重复计算
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill symfony-cache安装后在 Claude Code 中输入/symfony-cache确认已加载。
附带文件reference.md
详细介绍
Symfony Cache(Symfony)
适用场景
- 缓存开销较大的读取:仓库结果、计算值、第三方响应。
- 选择或配置池及其适配器(文件系统、Redis、APCu、链式)。
- 按标签失效,而不是清空所有内容。
- 热点键在负载下过期,导致每个请求同时重新计算。
- 添加 HTTP 缓存标头、缓存预热器,或在部署时清空池。
默认工作流
- 确定哪些内容会被重新计算、频率如何,以及是否可能过时。
- 根据访问模式和部署形态选择池及适配器。
- 使用明确的过期时间调用
CacheInterface::get()。 - 按每个条目所依赖的数据为其添加标签,并在写入时按标签失效。
- 对重新计算开销较大的键启用提前过期。
防护措施
- 为每个条目设置过期时间。没有过期时间的条目永远不会离开池。
- 切勿未经哈希处理就将用户输入放入缓存键,也切勿将机密信息放入缓存键。
- 按标签失效,而不是清空池:完全清空会导致冷启动。
- 缓存值按定义就是过时的。必须保证准确的内容不要缓存。
- 标签失效需要支持标签的适配器,因此配置池时就要确定这一点。
渐进式披露
- 使用此文件了解执行方式和风险控制。
- 需要深入了解实现细节时,打开参考资料。
输出约定
- 池和适配器配置,以及每个条目所选的过期时间。
- 标签映射:哪些写入会使哪些标签失效。
- 对重新计算开销较大的内容提供缓存击穿保护。
- 提供证据证明写入会使应当失效的内容失效。
参考资料
reference.md
评论
支持 Markdown