---
title: Elasticsearch请求缓存与查询缓存治理
keywords:
- request_cache
- query cache
- refresh
- size=0
- aggregation
description: 区分请求缓存与查询缓存的作用与触发条件,优化聚合与过滤命中率并控制无效缓存。
tags:
- Elasticsearch
- aggregation
- query cache
- refresh
- request_cache
- size=0
- 性能
- 数据
categories:
- 文章资讯
- 技术教程
---
Elasticsearch请求缓存与查询缓存治理
概览
- 请求缓存(request cache)在分片级缓存整次搜索结果,适用于
size=0或仅聚合的查询;在索引refresh时失效。 - 查询缓存(query cache)在段级缓存过滤器结果(位集),提升重复过滤的效率;受
indices.queries.cache.size控制。 - 正确设置与观测可提升命中率并避免高成本缓存。
技术参数(已验证)
- 请求缓存:索引设置
index.requests.cache.enabled控制;适用于聚合与size=0;写入/刷新使缓存失效。 - 查询缓存:集群设置
indices.queries.cache.size(默认内存百分比);缓存过滤器位集;与段生命周期相关。 - 观测:
_nodes/stats与indices stats查看命中/失效;仪表盘中区分两类缓存效果。 - 治理:避免对高变更索引启用过多请求缓存;对常用过滤使用稳定字段与低基数标签。
- 兼容:在搜索中合理使用预过滤与路由键;减少跨分片与高基数开销。
实战清单
- 为报表与看板聚合启用请求缓存;对常用过滤优化查询缓存。
- 建立命中率与失效观测;在高写入索引上谨慎启用请求缓存。
- 通过字段治理与索引策略提升缓存效果;持续优化。
- Importance: 提升聚合与过滤性能并避免无效缓存消耗。

发表评论 取消回复