简单的缓存基础设施。
项目描述
此包旨在由需要不同类型缓存风格的应用程序使用。这是由于接口ICacheProvider和ICacheManager的抽象。ICacheProvider负责具体的缓存实现,ICacheManager是读写接口。
惯例是适配一个具体的ICacheProvider实现
from bda.cache import ICacheManager
from bda.cache import Memcached
provider = Memcached(['127.0.0.1:11211'])
manager = ICacheManager(provider)
我们可以向管理器请求缓存内的数据
data = manager.get('somekey', force_reload=False)
如果force_reload设置为True,则尝试从缓存中删除具有键的数据并返回None。
我们还可以操作缓存的数据(某些限制可能由不提供这些功能的后端引起)
manager.set('somekey', object())
存在一个便利的方法可以同时使用一些API并将其结果缓存。
data = manager.getData(func, key, force_reload=False, args=[], kwargs={})
首先在缓存提供程序中查找 键 的数据。如果在那里找不到或者如果 force_reload 设置为 True,则调用给定的 func。此函数的返回值将被存储在缓存提供程序中。args 和 kwargs 在需要调用函数时作为参数传递。
您可能会问为什么因为有两个单独的接口而做所有这些...
某些用例可能需要不同的缓存提供程序,例如,对于不同的有效负载大小。由于缓存管理器接口,您也可以以这种方式实现其他缓存提供程序的使用。
依赖项
zope.interface
zope.component
bda.cache.fscache.FSCache 建议提供 cpickle 的可用性。
bda.cache.memcached.Memcached 需要 python-memcached。
注意
如果您有兴趣贡献;请随意,但请记住,此代码计划在未来以类似 BSD 的许可证发布。更改 ——-
1.3.0 (2019-02-05)
Python 3 兼容性 [reinhardt]
代码风格(black/isort)[jensens]
1.2.0 (2017-10-19)
当可用时,使用 libmc 或 pylibmc
添加选项以要求使用 bda.cache[pylibmc] 或 bda.cache[libmc]
1.1.2 (2009-02-10)
删除旧代码
1.1.1 (2009-02-10)
在 zcml 配置中的错误修复。
1.1 (2009-02-09)
缓存管理器现在是适配器。
实现 memcached 服务器支持
弃用默认缓存管理器
修复 FSCache 的测试
1.0
初始工作
项目详情
bda.cache-1.3.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 969424ee1cd8b5fe2a159cb72598b8b711eb0b924e688b0b17a3716cec56cbf1 |
|
MD5 | 7a15d394b07b051db09127bb247a553d |
|
BLAKE2b-256 | 34211fb049d0dc291efb927d1df0ff9c345fd0c529f2e4f114a5d42ec501a636 |