配置选项

oslo.cache 使用 oslo.config 来定义和管理配置选项,以便部署者可以控制应用程序如何使用此库。

cache

config_prefix
类型:

字符串

默认值:

cache.oslo

用于构建缓存区域配置字典的前缀。除非有另一个 dogpile.cache 区域使用相同的配置名称,否则不需要更改此项。

expiration_time
类型:

整数

默认值:

600

最小值:

1

默认 TTL(秒),适用于 dogpile.cache 区域中的任何缓存项。这适用于任何没有为其定义显式缓存过期时间的缓存方法。

backend_expiration_time
类型:

整数

默认值:

<None>

最小值:

1

在缓存后端中自动清除过期记录的过期时间。此值应大于 expiration_time 和所有 cache_time 选项

backend
类型:

字符串

默认值:

dogpile.cache.null

有效值:

oslo_cache.memcache_pool, oslo_cache.dict, oslo_cache.mongo, oslo_cache.etcd3gw, dogpile.cache.pymemcache, dogpile.cache.memcached, dogpile.cache.pylibmc, dogpile.cache.bmemcached, dogpile.cache.dbm, dogpile.cache.redis, dogpile.cache.redis_sentinel, dogpile.cache.memory, dogpile.cache.memory_pickle, dogpile.cache.null

缓存后端模块。对于基于 eventlet 的环境或具有数百个线程服务器的环境,建议使用带有池化的 Memcache (oslo_cache.memcache_pool)。对于具有少于 100 个线程服务器的环境,建议使用 Memcached (dogpile.cache.memcached) 或 Redis (dogpile.cache.redis)。测试环境可以使用单个服务器实例使用 dogpile.cache.memory 后端。

backend_argument
类型:

多值

默认值:

''

传递给后端模块的参数。对于要传递给 dogpile.cache 后端的每个参数,指定此选项一次。示例格式:“<argname>:<value>”。

proxies
类型:

列表

默认值:

[]

要导入的代理类,它们会影响 dogpile.cache 后端的运作方式。请参阅 dogpile.cache 文档中关于 changing-backend-behavior 的内容。

enabled
类型:

布尔值

默认值:

False

全局缓存开关。

debug_cache_backend
类型:

布尔值

默认值:

False

来自缓存后端的额外调试信息(缓存键、get/set/delete/等调用)。只有在需要查看带有键/值的特定缓存后端 get/set/delete 调用时,此选项才真正有用。通常应将其设置为 false。

memcache_servers
类型:

列表

默认值:

['localhost:11211']

Memcache 服务器的格式为“host:port”。这由依赖于 Memcached 的后端使用。如果使用 dogpile.cache.memcachedoslo_cache.memcache_pool,并且给定的主机引用 IPv6 或给定的域名引用 IPv6,则应使用地址族(inet6)来为给定的地址加前缀(例如 inet6:[::1]:11211inet6:[fd12:3456:789a:1::1]:11211inet6:[controller-0.internalapi]:11211)。如果未给出地址族,则这些后端将使用默认的 inet 地址族,它对应于 IPv4

memcache_dead_retry
类型:

整数

默认值:

300

在再次尝试之前,Memcached 服务器被认为已死的时间(秒)。(仅适用于 dogpile.cache.memcache 和 oslo_cache.memcache_pool 后端)。

memcache_socket_timeout
类型:

浮点数

默认值:

1.0

每次调用服务器的超时时间(秒)。(仅适用于 dogpile.cache.memcache 和 oslo_cache.memcache_pool 后端)。

memcache_pool_maxsize
类型:

整数

默认值:

10

每个 Memcached 服务器的最大开放连接数。(仅适用于 oslo_cache.memcache_pool 后端)。

memcache_pool_unused_timeout
类型:

整数

默认值:

60

连接在池中未被使用之前保持打开状态的秒数。(仅适用于 oslo_cache.memcache_pool 后端)。

memcache_pool_connection_get_timeout
类型:

整数

默认值:

10

获取 Memcache 客户端连接的操作等待的秒数。

memcache_pool_flush_on_reconnect
类型:

布尔值

默认值:

False

全局切换,确定是否在重新连接时刷新 Memcache。(仅适用于 oslo_cache.memcache_pool 后端)。

memcache_sasl_enabled
类型:

布尔值

默认值:

False

如果 SASL_enable 为 true,则启用 SASL(简单身份验证和安全层),否则禁用。

memcache_username
类型:

字符串

默认值:

<None>

启用 SASL 的 Memcached 的用户名

memcache_password
类型:

字符串

默认值:

<None>

启用 SASL 的 Memcached 的密码

redis_server
类型:

字符串

默认值:

localhost:6379

Redis 服务器的格式为“host:port”

redis_db
类型:

整数

默认值:

0

最小值:

0

Redis 服务器中的数据库 ID

redis_username
类型:

字符串

默认值:

<None>

redis 的用户名

redis_password
类型:

字符串

默认值:

<None>

redis 的密码

redis_sentinels
类型:

列表

默认值:

['localhost:26379']

Redis sentinel 服务器的格式为“host:port”

redis_socket_timeout
类型:

浮点数

默认值:

1.0

每次调用服务器的超时时间(秒)。(仅适用于 dogpile.cache.redis 和 dogpile.cache.redis_sentinel 后端)。

redis_sentinel_service_name
类型:

字符串

默认值:

mymaster

Redis sentinel 集群的服务名称。

tls_enabled
类型:

布尔值

默认值:

False

与缓存服务器通信时使用 TLS 的全局切换。目前受 dogpile.cache.bmemcachedogpile.cache.pymemcacheoslo_cache.memcache_pooldogpile.cache.redisdogpile.cache.redis_sentinel 支持。

tls_cafile
类型:

字符串

默认值:

<None>

建立缓存服务器身份验证所需的 PEM 格式的串联 CA 证书的文件路径。如果 tls_enabled 为 False,则忽略此选项。

tls_certfile
类型:

字符串

默认值:

<None>

包含客户端证书以及建立证书身份验证所需的任何数量的 CA 证书的单个 PEM 格式的文件。只有在需要客户端身份验证时才需要此文件。如果 tls_enabled 为 False,则忽略此选项。

tls_keyfile
类型:

字符串

默认值:

<None>

包含客户端私钥的单个文件。否则,私钥将从 tls_certfile 中指定的文件中获取。如果 tls_enabled 为 False,则忽略此选项。

tls_allowed_ciphers
类型:

字符串

默认值:

<None>

设置使用 TLS 上下文创建的套接字的可用密码。它应该是 OpenSSL 密码列表格式的字符串。如果未指定,将提供所有 OpenSSL 启用的密码。目前受 dogpile.cache.bmemcachedogpile.cache.pymemcacheoslo_cache.memcache_pool 支持。

enable_socket_keepalive
类型:

布尔值

默认值:

False

dogpile 的 pymemcache 后端的套接字保活的全局切换

socket_keepalive_idle
类型:

整数

默认值:

1

最小值:

0

连接在开始发送保活探测之前需要保持空闲的时间(秒)。应该是一个大于零的正整数。

socket_keepalive_interval
类型:

整数

默认值:

1

最小值:

0

各个保活探测之间的时间(秒)。应该是一个大于零的正整数。

socket_keepalive_count
类型:

整数

默认值:

1

最小值:

0

TCP 在放弃连接之前应该发送的最大保活探测次数。应该是一个大于零的正整数。

enable_retry_client
类型:

布尔值

默认值:

False

启用重试客户端机制以处理故障。这些机制可用于包装所有类型的 pymemcache 客户端。该包装器允许您定义重试次数以及尝试之间的等待时间。

retry_attempts
类型:

整数

默认值:

2

最小值:

1

在失败之前尝试操作的次数。

retry_delay
类型:

浮点数

默认值:

0

每次尝试之间的睡眠秒数。

hashclient_retry_attempts
类型:

整数

默认值:

2

最小值:

1

在 HashClient 的内部机制中,客户端应该尝试的次数,然后将其标记为已死并从池中删除。

hashclient_retry_delay
类型:

浮点数

默认值:

1

HashClient 的内部机制中,重试尝试之间应该经过的秒数。

dead_timeout
类型:

浮点数

默认值:

60

在 HashClient 的内部机制中,在尝试将节点放回池中之前应该经过的时间(秒)。

enforce_fips_mode
类型:

布尔值

默认值:

False

全局切换,用于强制 OpenSSL FIPS 模式。此功能需要 Python 支持。在所有环境中的 Python 3.9 中可用,并且可能已回溯到较旧的 Python 版本。如果使用的 Python 可执行文件不支持 OpenSSL FIPS 模式,将引发异常。目前受 dogpile.cache.bmemcachedogpile.cache.pymemcacheoslo_cache.memcache_pool 支持。