用途:在 Symfony 项目中为昂贵的读取(仓储查询结果、计算值、第三方响应)实现缓存,并管理缓存池、适配器与失效策略。
主要能力:选择或配置缓存池及其适配器(filesystem、Redis、APCu、chained);通过 CacheInterface::get() 带显式过期时间读取;按数据来源为条目打标签,写入时按标签失效而非清空整个池;对重算成本高的键启用提前过期(early expiration)以防缓存击穿;处理 HTTP 缓存头、缓存预热器(cache warmer)以及部署时清理缓存池。
使用方式:先确认哪些内容会被重复计算、频率如何、能否容忍过期;再按访问模式与部署形态选择池和适配器;读取时设置明确过期时间;为每个条目按其派生数据打标签,写入时按标签失效;对重算昂贵的键开启提前过期。
适用场景:仓储结果、计算值、第三方响应的缓存;需要按标签精准失效而非整体清空的场景;高负载下热点键同时过期导致重复计算的防护;部署流程中的缓存预热与清理。
限制与注意:每个条目都必须设置过期时间,否则永不过期;缓存键中不得放入未哈希的用户输入,也不得放入密钥;应按标签失效而非清空缓存池,整体清空等于冷启动;缓存值本质上可能过期,要求精确的数据不应缓存;标签失效需要支持标签的适配器,须在配置缓存池时决定。具体配置细节与深度实现可参考其 reference.md。