oslo_cache 包¶
子包¶
子模块¶
oslo_cache.core 模块¶
缓存层实现。
要使用此库
您必须调用 configure()。
在您的应用程序代码中,使用通过 get_memoization_decorator() 创建的备忘录装饰器来装饰您希望缓存结果的方法。 此函数从配置中获取组名。 注册 [group] caching 和 [group] cache_time 选项,用于装饰器使用的组,以便可以配置缓存。
此库的配置选项必须在您的应用程序的 oslo_config.cfg.ConfigOpts 实例中注册。 通过将 ConfigOpts 实例传递给 configure() 来执行此操作。
该库具有一个特殊的公共值,用于不存在或过期的键,称为 NO_VALUE。 要使用此值,您应该从 oslo_cache.core 导入它
from oslo_cache import core
NO_VALUE = core.NO_VALUE
- oslo_cache.core.NO_VALUE = <dogpile.cache.api.NoValue object>¶
为不存在或过期的键返回的值。
- oslo_cache.core.configure(conf)¶
配置库。
将所需的 oslo.cache 配置选项注册到 oslo.config CONF 对象中。
必须在调用
configure_cache_region()之前调用此函数。- 参数:
conf (oslo_config.cfg.ConfigOpts) – 配置对象。
- oslo_cache.core.configure_cache_region(conf, region)¶
配置缓存区域。
如果缓存区域已经配置,则此函数不执行任何操作。 否则,将配置该区域。
- 参数:
conf (oslo_config.cfg.ConfigOpts) – 配置对象,必须在其上调用
configure()。region (dogpile.cache.region.CacheRegion) – 要配置的缓存区域(请参阅
create_region())。
- 引发:
oslo_cache.exception.ConfigurationError – 如果 region 参数不是 dogpile.cache.CacheRegion。
- 返回值:
该区域。
- 返回类型:
dogpile.cache.region.CacheRegion
- oslo_cache.core.create_region(function=<function function_key_generator>)¶
创建区域。
这只是 dogpile.cache.make_region,但 key 生成器的 to_str 机制不同。
注意
您必须在调用备忘录方法之前使用此区域调用
configure_cache_region()。- 参数:
function (function) – 用于根据被装饰函数的参数生成唯一键的函数
- 返回值:
新区域。
- 返回类型:
dogpile.cache.region.CacheRegion
- oslo_cache.core.get_memoization_decorator(conf, region, group, expiration_group=None)¶
基于 cache_on_arguments 装饰器构建函数。
通过此函数创建的备忘录装饰器是
dogpile.cache.region.CacheRegion.cache_on_arguments()装饰器,其中should_cache_fn设置为函数,如果 [[cache] enabled] 选项为 true 并且 [group]caching为 True,则返回 True。expiration_time从 [expiration_group]cache_time选项设置,如果传递了expiration_group并且设置了该值,或者 [group]cache_time如果未传递expiration_group并且设置了该值,或者[cache] expiration_time否则。
示例用法
import oslo_cache.core MEMOIZE = oslo_cache.core.get_memoization_decorator( conf, region, group='group1') @MEMOIZE def function(arg1, arg2): ... ALTERNATE_MEMOIZE = oslo_cache.core.get_memoization_decorator( conf, region, group='group2', expiration_group='group3') @ALTERNATE_MEMOIZE def function2(arg1, arg2): ...
- 参数:
conf (oslo_config.cfg.ConfigOpts) – 配置对象,必须在其上调用
configure()。region (dogpile.cache.region.CacheRegion) – 由
create_region()创建的区域。group (string) – 要检查的配置组的名称
expiration_group (string) – 要检查过期选项的配置组的名称。 如果未指定该值或为
None,则将回退到使用group。
- 返回类型:
函数引用
oslo_cache.exception 模块¶
oslo_cache.testing 模块¶
外部测试中使用的项目。
- class oslo_cache.testing.CacheIsolatingProxy(*arg, **kw)¶
基类:
ProxyBackend强制存储值进行内存复制的代理。
默认的内存中缓存区域不会对它要缓存的值执行复制。 因此,如果在 set 或 get 之后修改了该值,则缓存的值也会被修改。 此代理在存储数据之前执行复制。
在您的应用程序的测试中,您希望将其设置为内存中缓存的代理,如下所示
self.config_fixture.config( group='cache', backend='dogpile.cache.memory', enabled=True, proxies=['oslo_cache.testing.CacheIsolatingProxy'])
- get(key)¶
检索缓存中的可选序列化值。
- 参数:
key – 传递给
CacheRegion.get()方法的字符串键,该方法也将处理“键混淆”函数(如果存在)。- 返回值:
与通过
CacheBackend.set()方法建立的 Python 对象相对应,或者如果不存在则为NO_VALUE常量。
如果使用序列化器,则仅当未覆盖
CacheBackend.get_serialized()方法时,才会调用此方法。
- set(key, value)¶
在缓存中设置可选序列化的值。
- 参数:
key – 传递给
CacheRegion.set()方法的字符串键,该方法也将处理“键混淆”函数(如果存在)。value – 可选的序列化
CachedValue对象。 可能是CachedValue的实例或字节对象,具体取决于是否在区域中使用序列化器以及是否覆盖了CacheBackend.set_serialized()方法。
参见
CacheBackend.set_serialized()
oslo_cache.version 模块¶
模块内容¶
- oslo_cache.configure(conf)¶
配置库。
将所需的 oslo.cache 配置选项注册到 oslo.config CONF 对象中。
必须在调用
configure_cache_region()之前调用此函数。- 参数:
conf (oslo_config.cfg.ConfigOpts) – 配置对象。
- oslo_cache.configure_cache_region(conf, region)¶
配置缓存区域。
如果缓存区域已经配置,则此函数不执行任何操作。 否则,将配置该区域。
- 参数:
conf (oslo_config.cfg.ConfigOpts) – 配置对象,必须在其上调用
configure()。region (dogpile.cache.region.CacheRegion) – 要配置的缓存区域(请参阅
create_region())。
- 引发:
oslo_cache.exception.ConfigurationError – 如果 region 参数不是 dogpile.cache.CacheRegion。
- 返回值:
该区域。
- 返回类型:
dogpile.cache.region.CacheRegion
- oslo_cache.create_region(function=<function function_key_generator>)¶
创建区域。
这只是 dogpile.cache.make_region,但 key 生成器的 to_str 机制不同。
注意
在使用记忆化方法调用之前,必须使用
configure_cache_region()配置此区域。- 参数:
function (function) – 用于根据被装饰函数的参数生成唯一键的函数
- 返回值:
新区域。
- 返回类型:
dogpile.cache.region.CacheRegion
- oslo_cache.get_memoization_decorator(conf, region, group, expiration_group=None)¶
基于 cache_on_arguments 装饰器构建函数。
通过此函数创建的备忘录装饰器是
dogpile.cache.region.CacheRegion.cache_on_arguments()装饰器,其中should_cache_fn设置为函数,如果 [[cache] enabled] 选项为 true 并且 [group]caching为 True,则返回 True。expiration_time从 [expiration_group]cache_time选项设置,如果传递了expiration_group并且设置了该值,或者 [group]cache_time如果未传递expiration_group并且设置了该值,或者[cache] expiration_time否则。
示例用法
import oslo_cache.core MEMOIZE = oslo_cache.core.get_memoization_decorator( conf, region, group='group1') @MEMOIZE def function(arg1, arg2): ... ALTERNATE_MEMOIZE = oslo_cache.core.get_memoization_decorator( conf, region, group='group2', expiration_group='group3') @ALTERNATE_MEMOIZE def function2(arg1, arg2): ...
- 参数:
conf (oslo_config.cfg.ConfigOpts) – 配置对象,必须在其上调用
configure()。region (dogpile.cache.region.CacheRegion) – 由
create_region()创建的区域。group (string) – 要检查的配置组的名称
expiration_group (string) – 要检查过期选项的配置组的名称。 如果未指定该值或为
None,则将回退到使用group。
- 返回类型:
函数引用