Skip to content

Cache

阅读路径

🟢 新手入门:README → quick-start → examples → concepts → glossary → usage

🔵 开发者:README → api → usage → concepts → examples

🟡 运维/安全:README → changelog → configuration → troubleshooting → best-practices

一句话总览

📌 FQBase 多级缓存层,支持 LocalMemory、Redis、MongoDB 三种缓存后端,提供统一的缓存接口和 @redis_cache 装饰器。

⚠️ AI 开发必读

使用场景

应该使用

  • 需要缓存函数结果 → 使用 @redis_cache 装饰器
  • 需要多进程共享缓存 → 使用 Redis 缓存
  • 需要持久化缓存 → 使用 MongoDB 缓存
  • 开发环境快速测试 → 使用 LocalCache

不应该使用

  • 对数据一致性要求极高的场景(缓存存在更新延迟)
  • 敏感数据缓存(缓存无加密)

注意事项

  1. 缓存降级

    • Redis 连接失败时自动降级到 LocalCache
    • 使用 init_cache_adapter() 初始化时会自动选择可用后端
  2. 键生成策略

    • 装饰器使用 SHA256 哈希生成缓存键
    • 可通过 key_prefix 参数自定义键前缀
  3. TTL 设置

    • 默认 TTL 300 秒
    • 可通过 key_ttl_func 动态设置 TTL

已知限制

  • LocalCache 不支持跨进程共享
  • MongoDB 缓存性能低于 Redis
  • 缓存一致性问题需要业务层处理

依赖

依赖类型模块说明
必须redisRedis 客户端
可选pymongoMongoDB 客户端
内置hashlib键生成

TL;DR

  • 解决什么问题:提供统一的缓存抽象,支持多种后端自动降级
  • 核心能力:适配器模式、工厂方法、@redis_cache 装饰器
  • 入门难度:🟢 简单

快速判断:当您需要 缓存函数结果/跨进程共享缓存/多级缓存 时,使用 Cache。

架构图

mermaid
graph TB
    subgraph Cache["Cache"]
        factory["create_cache - 工厂方法"]
        decorator["@redis_cache - 装饰器"]
        global["全局适配器管理"]
        local["LocalCache - 本地内存"]
        redis["RedisCacheAdapter - Redis"]
        mongo["MongoCacheAdapter - MongoDB"]
    end

缓存后端对比

后端适用场景优点缺点
LocalCache开发环境、单进程零依赖、高性能不支持分布式
Redis生产环境、多进程高性能、支持分布式需要 Redis 服务
MongoDB需要持久化数据持久化性能较低

快速链接

需求文档
快速入门快速入门
查看 APIAPI参考
配置指南配置指南
故障排查故障排查

相关文档