uwsgi_cache_lock_age
在启用 uWSGI 缓存的 NGINX 中,`uwsgi_cache_lock_age` 指令设置在处理请求时等待缓存锁的时间。 — NGINX HTTP Core
uwsgi_cache_lock_age
httpserverlocation
语法uwsgi_cache_lock_age time;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`uwsgi_cache_lock_age` 指令用于 NGINX 配置中,定义等待缓存锁的特定超时时间。当多个针对同一资源的请求同时到达时,缓存锁机制通过只允许一个请求从后端获取资源而让其他请求等待缓存填充,从而防止缓存雪崩。这可以避免后端因重复请求而过载,并在资源被缓存后向客户端提供最新内容。 为 `uwsgi_cache_lock_age` 指定的值是一个时间长度,用于控制其他请求等待锁释放的最长时间。如果缓存锁不可用且超时时间到期,后续请求可能会立即失败,或根据配置继续由后端获取资源。因此该指令在性能需求与使用 uWSGI 的动态内容的资源管理之间起到平衡作用。 该指令可在 NGINX 的多个上下文中使用,包括 http、server 和 location 块。在高并发环境中尤为有效,缓存对于降低后端负载和提升响应时间至关重要。
配置示例
uwsgi_cache_lock on; uwsgi_cache_lock_age 10s;
⚠
将该值设置得过低可能导致缓存击穿,当多个请求同时到达时会发生冲突。
⚠
未启用 `uwsgi_cache_lock` 将使该指令失效,因为不会应用任何锁。
⚠
过长的缓存锁定周期可能会延长等待缓存命中的用户的响应时间。