python中的高级缓存
thornfield的Python项目详细描述
thornfield
:python中的高级缓存
安装
pip install thornfield
使用
选择您要使用的缓存存储-内存中,redis和postgresql当前已实现。
您可以通过实现Cache
接口来使用不同的存储。在
然后,使用cached
修饰符对缓存的函数进行注释:
cacher = Cacher(cache_factory_func)
@cacher.cached
def foo():
...
装饰器支持:
- 设置缓存值的过期时间。在
- 只缓存与约束匹配的值(例如,not
None
)。在 - 只使用一些函数参数作为缓存的键。在
- 缓存异步函数。在
仅缓存某些参数
如果您不想将函数的所有参数用作缓存键,
您可以使用Cached
或NotCached
类型:
缓存抽象方法
为了避免在
抽象方法,可以使用cache_method
,如下所示:
class Base(ABC):
def __init__(self):
cacher.cache_method(do_something)
@abstractmethod
def do_something(self):
pass
缓存工厂
在cache_factories
包中,可以找到Redis和PostgreSQL的缓存工厂。
它们都将每个函数缓存到不同的表(在PostgreSQL中,db在Redis中)。在
它们的create
方法可以作为cache_impl
传递给Cacher
的构造函数。在
- 项目
标签: