fn_cache

快速开始

  • 安装指南
    • 📦 系统要求
    • 🔧 安装方式
      • 使用 pip 安装(推荐)
      • 从源码安装
      • 安装开发依赖
      • 安装文档依赖
    • 🚀 快速验证安装
    • 🔌 Redis 配置(可选)
      • Ubuntu/Debian
      • macOS
      • Windows
      • 验证 Redis 连接
    • ⚙️ 环境变量配置
    • 🔧 开发环境设置
    • 📋 依赖项说明
      • 核心依赖
      • 可选依赖
      • 开发依赖
    • 🐛 常见安装问题
      • 1. 权限问题
      • 2. Python 版本问题
      • 3. Redis 连接问题
      • 4. 依赖冲突
    • 📞 获取帮助
    • 🎯 下一步
  • 快速上手
    • 🎯 学习目标
    • 🚀 第一步:基本缓存
    • 🔄 第二步:异步函数缓存
    • 🎛️ 第三步:配置缓存策略
      • TTL 缓存(基于时间过期)
      • LRU 缓存(最近最少使用)
    • 💾 第四步:使用 Redis 存储
    • 📊 第五步:缓存统计和监控
    • 🔧 第六步:自定义缓存键
    • 🎛️ 第七步:全局缓存控制
    • 📝 完整示例
    • 🎯 下一步
  • 基础示例
    • 🚀 快速开始
      • 1. 基本缓存
      • 2. 异步函数缓存
    • 🎛️ 缓存策略示例
      • TTL 缓存(基于时间过期)
      • LRU 缓存(最近最少使用)
    • 💾 存储后端示例
      • 内存存储(默认)
      • Redis 存储
    • 🔑 缓存键示例
      • 默认缓存键
      • 自定义缓存键
      • 使用缓存键枚举
    • 📊 序列化示例
      • JSON 序列化(默认)
      • Pickle 序列化
      • MessagePack 序列化
    • 🎛️ 全局控制示例
      • 全局缓存开关
      • 缓存失效
    • 📈 监控示例
      • 缓存统计
      • 内存监控
    • 🔧 高级示例
      • 动态过期时间
      • 缓存预热
    • 📝 完整示例
    • 🎯 下一步
    • 🧩 排除特定类型参数的缓存键生成

核心概念

  • 缓存装饰器
    • 🎯 基本概念
    • 📝 基本用法
      • 最简单的用法
      • 异步函数支持
    • ⚙️ 配置参数
      • 缓存策略配置
        • TTL 缓存(默认)
        • LRU 缓存
      • 存储后端配置
        • 内存存储(默认)
        • Redis 存储
      • 序列化配置
    • 🔑 缓存键配置
      • 默认缓存键生成
      • 自定义缓存键函数
      • 使用缓存键枚举
    • 🎛️ 高级配置
      • 动态过期时间
      • 缓存预热
      • 自定义前缀
    • 🔧 装饰器方法
    • 🚫 缓存控制
      • 跳过缓存读取
      • 跳过缓存写入
      • 等待缓存写入
    • 📊 性能监控
      • 启用统计
      • 内存监控
    • 🔄 版本控制
      • 全局版本控制
      • 用户级版本控制
    • 🎯 最佳实践
      • 1. 选择合适的缓存策略
      • 2. 合理设置缓存时间
      • 3. 使用有意义的缓存键
      • 4. 处理缓存异常
      • 5. 监控缓存性能
    • 🐛 常见问题
      • 1. 缓存键冲突
      • 2. 缓存穿透
      • 3. 缓存雪崩
    • 📚 相关链接

API参考

  • 装饰器 API 参考
    • 📋 类定义
    • 🔧 构造函数
    • 📝 参数详解
      • cache_type: CacheType
      • storage_type: StorageType
      • ttl_seconds: int
      • max_size: int
      • key_func: Optional[Callable]
      • prefix: str
      • preload_provider: Optional[Callable]
      • serializer_type: Optional[SerializerType]
      • serializer_kwargs: Optional[dict]
      • make_expire_sec_func: Optional[Callable]
    • 🔄 调用方法
      • call(func: Callable) -> Callable
    • 🎛️ 装饰器方法
      • decorator()
    • 📊 缓存管理器访问
    • 🔧 缓存控制参数
      • cache_read: bool
      • cache_write: bool
      • wait_for_write: bool
    • 📈 性能监控
      • 启用统计
      • 启用内存监控
    • 🔄 版本控制
      • 全局版本控制
      • 用户级版本控制
    • 🎯 完整示例
    • 🐛 错误处理
    • 📚 相关链接

示例教程

  • 基础示例
    • 🚀 快速开始
      • 1. 基本缓存
      • 2. 异步函数缓存
    • 🎛️ 缓存策略示例
      • TTL 缓存(基于时间过期)
      • LRU 缓存(最近最少使用)
    • 💾 存储后端示例
      • 内存存储(默认)
      • Redis 存储
    • 🔑 缓存键示例
      • 默认缓存键
      • 自定义缓存键
      • 使用缓存键枚举
    • 📊 序列化示例
      • JSON 序列化(默认)
      • Pickle 序列化
      • MessagePack 序列化
    • 🎛️ 全局控制示例
      • 全局缓存开关
      • 缓存失效
    • 📈 监控示例
      • 缓存统计
      • 内存监控
    • 🔧 高级示例
      • 动态过期时间
      • 缓存预热
    • 📝 完整示例
    • 🎯 下一步
    • 🧩 排除特定类型参数的缓存键生成

帮助

  • 常见问题 (FAQ)
    • 🔧 安装和配置
      • Q: 如何安装 fn_cache?
      • Q: 支持哪些 Python 版本?
      • Q: 如何配置 Redis 连接?
      • Q: 如何设置环境变量配置?
    • 🎛️ 基本使用
      • Q: 如何为函数添加缓存?
      • Q: 如何缓存异步函数?
      • Q: 如何选择缓存策略?
      • Q: 如何自定义缓存键?
    • 💾 存储后端
      • Q: 内存存储和 Redis 存储有什么区别?
      • Q: 如何切换存储后端?
      • Q: Redis 连接失败怎么办?
      • Q: 如何配置 Redis 集群?
    • 📊 序列化
      • Q: 如何选择序列化器?
      • Q: 序列化失败怎么办?
      • Q: 如何序列化自定义对象?
    • 🔄 缓存控制
      • Q: 如何禁用全局缓存?
      • Q: 如何清除特定函数的缓存?
      • Q: 如何使所有缓存失效?
      • Q: 如何跳过缓存读取?
    • 📈 监控和统计
      • Q: 如何查看缓存命中率?
      • Q: 如何监控内存使用?
      • Q: 如何重置统计信息?
    • 🔧 高级功能
      • Q: 如何实现动态过期时间?
      • Q: 如何实现缓存预热?
      • Q: 如何实现用户级缓存失效?
    • 🐛 故障排除
      • Q: 缓存不生效怎么办?
      • Q: 内存占用过高怎么办?
      • Q: Redis 连接超时怎么办?
      • Q: 序列化错误怎么办?
      • Q: 异步函数缓存不工作?
    • 🔧 性能优化
      • Q: 如何提高缓存命中率?
      • Q: 如何减少内存占用?
      • Q: 如何提高 Redis 性能?
    • 📚 更多帮助
      • Q: 在哪里可以找到更多示例?
      • Q: 如何报告 Bug?
      • Q: 如何贡献代码?
      • Q: 如何获取最新版本?
    • 📞 联系支持

开发

  • 开发环境
    • 🚀 快速设置
      • 一键设置开发环境
      • 手动设置
    • 🛠️ 开发工具
      • Makefile 命令
        • 基础命令
        • 代码质量
        • 测试
        • 文档
        • 构建和发布
        • 检查和验证
        • 维护
        • 示例和工具
    • 🔧 开发工作流
      • 日常开发
      • 发布前检查
      • 文档开发
    • 📋 代码规范
      • Python 代码规范
      • 提交信息规范
      • 分支命名规范
    • 🧪 测试
      • 运行测试
      • 测试覆盖率
    • 📚 文档开发
      • 文档结构
      • 添加新文档
      • 文档格式
    • 🔍 调试
      • 日志配置
      • 调试模式
    • 🚀 性能分析
      • 性能测试
      • 内存分析
    • 🔧 环境变量
      • 开发环境变量
    • 📦 发布流程
      • 版本管理
      • 发布步骤
      • 发布检查清单
    • 🤝 贡献指南
      • 提交 Pull Request
      • 代码审查
    • 📞 获取帮助
    • 🔗 相关链接
fn_cache
  • 搜索


© 版权所有 2025, LeoWang。

利用 Sphinx 构建,使用的 主题 由 Read the Docs 开发.