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)

配置缓存区域。

如果缓存区域已经配置,则此函数不执行任何操作。 否则,将配置该区域。

参数:
引发:

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 模块

exception oslo_cache.exception.ConfigurationError

基类: Exception

当缓存配置不正确时引发。

exception oslo_cache.exception.QueueEmpty

基类: 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)

配置缓存区域。

如果缓存区域已经配置,则此函数不执行任何操作。 否则,将配置该区域。

参数:
引发:

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

返回类型:

函数引用