SuperAPI AI 工具集

FastAPI Caching

编程与开发

查看项目

更新于 10-16 03:35

技能介绍

该技能用于在 FastAPI 应用中接入 Redis 缓存,面向需要缓存 API 响应、查询结果并处理缓存失效的场景。

主要能力包括:异步 Redis 客户端封装(连接池、connect/disconnect、get/set/delete/delete_pattern/exists,键值经 JSON 序列化并支持 TTL),通过 lifespan 集成 FastAPI;提供 cached 装饰器,可为异步函数按 prefix、expire 和自定义 key_builder 缓存结果,默认对参数做哈希生成键;提供 ResponseCacheMiddleware 响应缓存中间件,仅缓存指定方法(默认 GET),支持 cache-control: no-cache 跳过,并返回 X-Cache HIT/MISS;示范 Cache-Aside 与 Write-Through 仓储模式,以及基于事件调用的缓存失效方法(on_user_updated、on_product_updated 等),使用 delete 与 delete_pattern 清理相关键。

使用方式:先按示例在 app/infrastructure/cache.py 定义 RedisCache 并在 lifespan 中调用 connect/disconnect,再按需使用 @cached 装饰服务方法,或挂载 ResponseCacheMiddleware;写入数据后调用失效逻辑删除对应缓存键。

限制:资料未提供安装命令、依赖版本、Redis 部署要求、并发与缓存穿透/雪崩的具体处理细节,也未说明性能指标或收费信息;示例中的数据库与会话代码仅为演示,实际需结合自身项目调整。