[Python] 缓存实用工具

cachetools 是一个 Python 库,提供了用于缓存的实用工具,包括各种缓存算法和数据结构,如 LRU(最近最少使用)缓存、TTL(时间到期)缓存等。使用 cachetools 可以轻松地在 Python 应用程序中实现缓存功能,提高性能并减少对重复计算的需求。

以下是一个简单示例代码,演示了如何在 Python 中使用 cachetools 这个库:

首先,你需要安装 cachetools 库。你可以使用 pip 来进行安装:

bash 复制代码
pip install cachetools

接下来是示例代码:

python 复制代码
from cachetools import cached, TTLCache

# 创建一个 TTL(时间到期)缓存,设置最大缓存条目数为 3,每个缓存条目的存活时间为 5 秒
cache = TTLCache(maxsize=3, ttl=5)

@cached(cache)
def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

# 第一次调用 fibonacci 函数会进行计算
print(fibonacci(5))

# 再次调用相同的参数,此时会直接从缓存中获取结果
print(fibonacci(5))

# 等待 5 秒后,缓存条目过期
import time
time.sleep(5)

# 再次调用 fibonacci 函数,需要重新计算
print(fibonacci(5))

在这段示例代码中,我们首先创建了一个 TTL 缓存对象 cache,设置最大缓存条目数为 3,每个缓存条目的存活时间为 5 秒。然后定义了一个 fibonacci 函数,并使用 @cached(cache) 装饰器将其缓存起来。第一次调用 fibonacci(5) 函数时会进行计算,并将结果缓存起来。再次调用相同参数时,会直接从缓存中获取结果。等待 5 秒后,缓存条目过期,再次调用 fibonacci(5) 函数时需要重新计算。

通过使用 cachetools 的缓存功能,可以有效地减少重复计算,提高应用程序的性能和响应速度。

相关推荐
Shaoshing几秒前
消息发送
java·开发语言
haluhalu.6 分钟前
深入理解 AI Agent(1.2):Harness 工程——模型之外的竞争力
前端·数据结构·人工智能·python·langchain·个人开发
乌暮29 分钟前
从 `println` 到生产级日志:Spring Boot 日志体系完全指南
java·开发语言·jvm·spring boot·后端·学习·面试
东莞市云毅网络有限公司30 分钟前
把网页表格与列表还原成结构化条目:抽取与对账实现
python·文本处理·数据抽取
夜瞬34 分钟前
从零微调 Qwen3-8B:基于 LoRA 与 LLaMA-Factory 打造专属 AI 编程助教
人工智能·python·llama
星夜离尘5643 分钟前
MATLAB 定点量化误差实验 半个 LSB 的界限为什么挡不住削顶失真
开发语言·matlab
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 百度人脸识别:介绍
java·开发语言·交友
障碍的枫子1 小时前
我的第一个Agent
开发语言·python·langchain
打工仔折腾 AI1 小时前
260+异构同步链路实战:如何用语义化自动翻译破解CDC DDL同步痛点
人工智能·后端·python·自然语言处理·性能优化·langchain·机器翻译
Pniubi1 小时前
区分agent中长期记忆和偏好记忆
开发语言·ai·智能体