如何避免ehcache消耗内存过大?

 我来答
一株会旅行的小草
推荐于2019-10-21 · TA获得超过693个赞
知道答主
回答量:73
采纳率:100%
帮助的人:10.6万
展开全部

为了避免消耗内存过大建议Ehcache在diskstore模式下不要使用。

  • maxElementsInMemory : 允许内存中最大的元素个数

  • overflowToDisk : 当元素的数量超过maxElementsInMemory的值时,是否允许存储到磁盘

  • diskPersistent   : 是否允许数据持久化到内存,如果是,即JVM重启缓存中的数据仍然有效,该设置影响性能,大概减低8倍性能

  • diskExpiryThreadIntervalSeconds : 磁盘中数据过期检查线程的轮询时间间隔

  • memoryStoreEvictionPolicy : 内存中数据元素的管理策略,当元素的数量超过maxElementsInMemory的值时,将触发该策略把内存中的元素移出,有:LFU:最近最少使用的元素  先移出;FIFO:最先进入的元素被移出;LRU:使用越少的元素被移出

  • eternal :  true时表示缓存中的数据永远不会过期;false时表示缓存中的数据会过期,过期的依据需要根据timeToIdleSeconds 和 timeToLiveSeconds 的值

  • timeToIdleSeconds : 允许缓存中数据的最大空闲时间,即cache.get(key)最近一次被调用离现在的时间间隔如果大于该时间,即该元素会被过期expiry

  • timeToLiveSeconds : 允许缓存中数据的最大生存时间,0时表示无限大。cache.put(element)到现在的时间间隔如果大于该时间,即该元素被过期expiry

  • 元素在缓存中被过期expiry,只需满足上面timeToIdleSeconds和timeToLiveSeconds任何一个条件即可

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式