本文主要是介绍lru_cache装饰器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LRU算法原理
-
LRU(Least Recently Used)算法是一种缓存淘汰策略。
-
用于在有限的缓存空间中管理数据对象。
lru_cache用法
Python的缓存(lru_cache)是一种装饰在被执行的函数上,将其执行的结果缓存起来,当下次请求的时候,如果请求该函数的传参未变则直接返回缓存起来的结果而不再执行函数的一种缓存装饰器。
@functools.lru_cache(maxsize=None, typed=False)
参数maxsize:最大缓存次数,不指定传参默认值128。
参数typed:是否区分传参数据类型,默认fasle
lru_cache举例
import datetimefrom functools import lru_cache@lru_cachedef fibonacci(num):# 不使用缓存时,会重复执行函数return num if num < 2 else fibonacci(num - 1) + fibonacci(num - 2)start = datetime.datetime.now()print(fibonacci(40))end = datetime.datetime.now()print('执行时间', end - start)
lru_cache与redis对比
缓存方式 | 缓存位置 | 是否支持可变参数 | 是否支持分布式 | 是否支持过期时间设置 | 支持的数据结构 | 需单独安装 |
redis | 缓存在redis管理的内存中 | 是 | 是 | 是 | 支持5种数据结构 | 是 |
lru_cache | 缓存在应用进程的内存中,应用被关闭则被清空 | 否 | 否 | 否 | 字典(参数为:key,结果为:value) | 否 |
这篇关于lru_cache装饰器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!