mcpField
S
symfony-cache

symfony-cache

github.com/dev-toolings开发22784 次安装3 周前更新
代码仓库

关于 symfony-cache

面向 Symfony 开发的缓存配置与管理技能,涵盖过期策略、缓存池和适配器选择。还介绍按标签失效,以及避免昂贵计算在缓存过期时同时触发。

主要功能

  1. 01按访问模式选择缓存池和适配器
  2. 02通过 CacheInterface::get() 读取并设置过期时间
  3. 03按标签使缓存条目失效
  4. 04为昂贵计算启用提前过期
  5. 05检查失效行为与缓存击穿防护

适用场景

  1. 01缓存仓库查询结果或计算值
  2. 02缓存第三方服务的响应
  3. 03写入数据后使相关条目失效
  4. 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 缓存标头、缓存预热器,或在部署时清空池。

默认工作流

  1. 确定哪些内容会被重新计算、频率如何,以及是否可能过时。
  2. 根据访问模式和部署形态选择池及适配器。
  3. 使用明确的过期时间调用 CacheInterface::get()。
  4. 按每个条目所依赖的数据为其添加标签,并在写入时按标签失效。
  5. 对重新计算开销较大的键启用提前过期。

防护措施

  • 为每个条目设置过期时间。没有过期时间的条目永远不会离开池。
  • 切勿未经哈希处理就将用户输入放入缓存键,也切勿将机密信息放入缓存键。
  • 按标签失效,而不是清空池:完全清空会导致冷启动。
  • 缓存值按定义就是过时的。必须保证准确的内容不要缓存。
  • 标签失效需要支持标签的适配器,因此配置池时就要确定这一点。

渐进式披露

  • 使用此文件了解执行方式和风险控制。
  • 需要深入了解实现细节时,打开参考资料。

输出约定

  • 池和适配器配置,以及每个条目所选的过期时间。
  • 标签映射:哪些写入会使哪些标签失效。
  • 对重新计算开销较大的内容提供缓存击穿保护。
  • 提供证据证明写入会使应当失效的内容失效。

参考资料

  • reference.md

评论

支持 Markdown