如果数据频繁更改,应使用哪种类型的Java缓存?

时间:2009-11-25 16:09:37

标签: java performance multithreading caching lru

我有一个JSP,它通过许多聚合类型显示数据。例如。按市场,按类别,按服务器类型等。我所拥有的是出版商和时间的数据。在我的案例中,Publisher是最精细的数据级别。

现在这个数据每半小时变化一次。每半小时的数据量几乎是5K,任何人一次看4小时到24小时的数据。在这些情况下,加载服务器时,JSP加载时间会迅速增加。我尝试使用和LinkedHashMap的LRU缓存,但这似乎不是最佳解决方案,因为性能仍然不好。

任何关于使用哪种数据结构的想法都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

您可以使用Ehcache等缓存工具。

答案 1 :(得分:1)

性能差,还是命中率低?有时维护缓存比直接查询数据更难。对于低命中率,尤其如此。

如果需要10ms来提供缓存命中,50ms用于缓存未命中,加上2​​0ms来存储缓存命中,那么每次缓存命中只需要20ms,因此10次命中需要200ms。这听起来很棒,但是当你添加过期和失效时,更不用说缓存失效了,突然之间,你的每个错过至少 10次点击才能让缓存变得有用。< / p>

缓存非常适合快闪族,但对于临时工具来说,很多时候它可以浪费尽可能多的资源。