python中使用缓存技术

functools.cache 是 Python 3.9 中引入的一个装饰器,用于缓存函数的返回值,以便在相同的参数输入下,可以直接返回缓存的结果,而不必重新计算。这对于那些在相同输入下计算结果相同的函数来说非常有用。

使用 `functools.cache` 装饰器可以在函数的运行时动态地缓存结果,这样可以提高函数的执行速度,尤其是当函数的计算开销很大时。它在使用递归或者其他需要计算相同值多次的情况下尤其有用。

以下是一个简单的示例,演示了如何使用 `functools.cache` 装饰器:

python 复制代码
import time
from functools import cache

@cache
def add(x):
    print(f"输入的数据是{x}...")
    time.sleep(2)
    return x+1

while True:
    data = int(input(">>...."))
    print(add(data))

在上面的示例中,`add函数使用了 `functools.cache` 装饰器,这意味着在第一次计算 add 的结果后,结果将被缓存,并在下一次调用 `fibonacci(n)` 时直接返回缓存的结果,而不必重新计算。

需要注意的是,`functools.cache` 是在 Python 3.9 中引入的,如果您的 Python 版本较低,可能需要考虑其他缓存方案,比如使用 `functools.lru_cache`。还有就是这个示例中的"

复制代码
print(f"输入的数据是{x}...")",它只会再第一次打印,如果下次再次执行相同结构,函数会直接返回结果,不会去执行里面的代码。这点是要注意的。
相关推荐
流星白龙13 小时前
【Redis】4.基本全局命令
数据库·redis·缓存
流星白龙16 小时前
【Redis】3.Redis安装与命令行客户端
数据库·redis·缓存
我不想名字重复1 天前
redis缓存和数据库数据保持一致
数据库·redis·缓存
时空无限1 天前
vllm 大模型启动缓存相关环境变量 export
linux·缓存·vllm
流星白龙1 天前
【Redis】6.计数其他命令
数据库·redis·缓存
正儿八经的少年1 天前
redis 的大 key 和热 key 详解
数据库·redis·缓存
X-⃢_⃢-X1 天前
十、Redis之布隆过滤器
数据库·redis·缓存
Database_Cool_1 天前
阿里云 Tair(企业级内存数据库)vs 腾讯云 Redis 云缓存深度对比:性能/数据结构/成本全维度 Benchmark
数据库·阿里云·缓存
流星白龙1 天前
【Redis】1.Redis特性
数据库·redis·缓存
chexus1 天前
21. 深入 Nginx HTTP 缓存源码:CDN功能
nginx·http·缓存