跳转到主要内容

简单的缓存基础设施。

项目描述

此包旨在由需要不同类型缓存风格的应用程序使用。这是由于接口ICacheProviderICacheManager的抽象。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。此函数的返回值将被存储在缓存提供程序中。argskwargs 在需要调用函数时作为参数传递。

您可能会问为什么因为有两个单独的接口而做所有这些...

某些用例可能需要不同的缓存提供程序,例如,对于不同的有效负载大小。由于缓存管理器接口,您也可以以这种方式实现其他缓存提供程序的使用。

依赖项

  • 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 (11.1 kB 查看哈希)

上传时间 源代码

支持者