获得用户请求时“正”缓存 - ehcache

时间:2015-08-23 17:44:24

标签: java spring ehcache

我负责提高我的webapp的性能,当然,解决方案必须是缓存。

目前,系统有RSS数据应该有点新鲜,问题是它加载了如此繁重的mysql。实际上,我用ehcache缓存了1分钟。这意味着1分钟后,数据将过期,当不幸的用户来时,他们的体验将比正常情况慢。

ehcache的配置如下:

<cache name="news.list" maxEntriesLocalHeap="1000" eternal="false" timeToLiveSeconds="60" statistics="true"
       memoryStoreEvictionPolicy="FIFO">
</cache>

我将其称为负缓存,我也在考虑积极缓存。如果数据缓存已过期,它仍会返回旧的缓存数据并生成并行任务以填充其他客户的最新数据。

ehcache有什么技术可以支持吗?

欢迎任何想法, 谢谢。

1 个答案:

答案 0 :(得分:2)

这里需要的是一个所谓的refresh-ahead缓存。这样您就可以指示缓存一致地查找过期的条目并在后台刷新它们。因此,当您的用户到来时,他们可能会为他们预先加载新的(即时可用的)信息。

您仍需要小心整体配置。 严重的缓存可能会导致应用程序性能下降。如果不完全了解其范围并在可能的情况下进行测试,则不应该应用任何类型的缓存方法。