SuperAPI AI 工具集

caching

通用与其它

查看项目

更新于 10-16 02:31

技能介绍

用途:该技能用于指导在代码中正确引入缓存。触发场景包括同一数据被反复获取、数据库查询缓慢、计算开销大、外部 API 有速率限制,或被要求“直接加个缓存”。

核心原则:绝不可以在未定义失效策略的情况下添加缓存。资料明确否定了“它很少变”“TTL 就够了”“以后再想”“用户可以刷新”等理由。

主要能力:识别“无策略缓存”坏味道,例如无 TTL、无内存上限、更新时不失效、分布式系统中使用内存缓存。提供正确模式:带 TTL 与显式失效的缓存类,写入时调用 invalidate。

失效策略:1) 基于时间 TTL,适合可容忍轻微过期的数据;2) 写穿透,适合可控制写入的数据;3) 事件驱动,适合分布式系统,通过事件总线在变更时删除键;4) Cache-Aside 懒加载,适合读多写少场景。

可缓存内容:用户资料、商品目录、配置、API 响应、计算聚合。不宜缓存:会话令牌、支付状态、实时库存、用户特定计算、快速变化数据。

用法示例:资料给出 Redis(ioredis)实现,使用 setex 设置 TTL,del 失效,keys 按模式失效。

限制与要求:每个缓存都需要 TTL、大小限制和失效策略。过期数据会导致难以排查的缺陷,因此应在设计阶段就确定失效方案。资料未提供具体安装命令、价格或平台信息。