java - "positive"收到用户请求时进行缓存 - ehcache

标签 java spring ehcache

我负责提高我的网络应用程序的性能,当然,解决方案必须是缓存。

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

ehcache的配置如下:

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

我将其称为负缓存,我也在考虑正缓存。如果缓存数据过期,它仍然返回旧的缓存数据,并进行并行任务来为稍后的其他客户填充最新数据。

ehcache有什么技术支持吗?

欢迎任何想法, 谢谢。

最佳答案

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

您仍然需要小心您的整体配置。 缓存做得不好可能会导致应用性能下降。在没有完全了解其范围并尽可能进行测试的情况下,您不应应用任何类型的缓存方法。

关于java - "positive"收到用户请求时进行缓存 - ehcache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32169590/

相关文章:

java - Logback RollingFileAppender 不工作

java - 为什么hibernate/ehcache二级缓存在同一个 session 中总是丢失?

java - 刷新缓存时ehCache能否返回旧的缓存值

java - 如何分析Java应用程序在x64操作系统上引起的系统卡住?

java - ShowMessageDialog - 组件

spring - 如何正确地将复选框绑定(bind)到 thymeleaf 中的对象列表?

java - 如何在 HandlerInterceptorAdapter 中添加 HttpServletRequest header ?

java - 将值从 Spring 表单传递到另一个 Spring 表单

java - 如何使用 mockito 测试 ehcache?

java - ObjectInputStream#readObject 使用外部 Jar 类引发 ClassNotFoundException