我负责提高我的网络应用程序的性能,当然,解决方案必须是缓存。
目前,系统已经提供了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/