elasticsearch索引模块缓存

缓存

索引有不同的内置缓存模块。 它们包括 过滤器(filter), 字段(field) 和其它。

过滤器缓存

过滤器缓存负责缓存过滤后的结果(在查询中使用)。 默认实现过滤器缓存(和一个推荐使用在几乎所有的情况下) 的是 节点过滤器缓存 类型。

节点过滤器缓存

这个 节点过滤器缓存 可以被配置为使用总内存的一定比例分配给进程或一个指定数量的内存。 所有的索引分片只能出现在一个节点共享一个单一的节点缓存(这就是为什么它叫 节点 ”)。 这个缓存工具实现了一个叫做 LRU 数据删除策略:当缓存区满了以后,最近最少使用的数据被删除,以腾出空间给新的数据存放。

这个设置允许控制过滤器缓存占多少内存大小, indices.cache.filter.size ,该属性的默认值 20% 。 注意 ,这是不一个索引级别的设置,而是节点级别设置(可以在节点上进行配置)。indices.cache.filter.size  可以接受一个百分比值,如:30% ,或一个精确值,如:512 mb 。

索引过滤器缓存

该过滤器缓存是在索引等级上面的(每一个节点上)。 一般来说,不建议使用该缓存,因为缓存内存使用量取决于每个节点上面的分片,这个很难难预测。 这个类型分为: 常驻,  软件 和 弱 (residentsoft and weak.)。

所有类型支持以下设置:

SettingDescription
index.cache.filter.max_size这个是设置缓存(每次查询在一个分片里的缓存)的最大值(计数,而不是字节大小)。默认是不设置(-1),一般用于 soft 缓存或者是适合缓存的过滤器。
index.cache.filter.expire设置缓存的数据处于非活动状态多长时间后过期。

默认值为(-1)。例如,可以设置为 5m,表示缓存的数据5分钟后过期。

字段数据缓存

字段数据缓存的主要用在当以某一个字段排序或faceting上。 它将所有字段的数值加载到内存中为了提供快速的访问这些值。 字段数据缓存可能很昂贵为一个字段,所以建议要有足够的内存来分配它,并使它加载。

默认该缓存的类型使用 resident(常驻) (因为重建的代码太大)。 其他类型可以使用 soft。

SettingDescription
index.cache.field.max_size这个是设置缓存(每次查询在一个分片里的缓存)的最大值(计数,而不是字节大小)。默认是不设置(-1)
index.cache.field.expire设置缓存的数据处于非活动状态多长时间到期。

默认值为(-1)。例如,可以设置为 5m,表示缓存的数据5分钟后过期。

转载于:https://my.oschina.net/u/1024514/blog/470574

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值