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

如果数据频繁更改,应该使用哪种类型的java缓存?,java,performance,multithreading,caching,lru,Java,Performance,Multithreading,Caching,Lru,我有一个JSP,它通过多种聚合类型显示数据。例如,按市场、按类别、按服务器类型等。。我所拥有的是按出版商和时间划分的数据。在我的例子中,Publisher是最细粒度的数据 现在这些数据每1/2小时改变一次。每半小时的数据量几乎为5K,任何人每次查看数据的时间为4小时到24小时。在这些情况下,当服务器被加载时,JSP加载时间会迅速增加。我尝试使用LinkedHashMap和LRU缓存,但这似乎不是最佳解决方案,因为性能仍然不好 如果您知道要使用哪种数据结构,我们将不胜感激。您可以使用像这样的缓存工

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

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


如果您知道要使用哪种数据结构,我们将不胜感激。

您可以使用像这样的缓存工具。

您可以使用像这样的缓存工具。

是性能差,还是命中率低?有时维护缓存比直接查询数据更困难。在命中率较低的情况下尤其如此

如果缓存命中需要10毫秒,缓存未命中需要50毫秒,再加上存储缓存命中需要20毫秒,那么每次缓存命中只需要20毫秒,因此10次命中需要200毫秒。这听起来不错,但当您添加过期和失效,更不用说缓存失效,突然之间,您就达到了一个点,即每次未命中至少需要10次命中才能使缓存变得有用


缓存对于flash Mob来说非常好,但是对于临时工具来说,它会浪费大量的时间,浪费尽可能多的资源。

是性能差,还是命中率低?有时维护缓存比直接查询数据更困难。在命中率较低的情况下尤其如此

如果缓存命中需要10毫秒,缓存未命中需要50毫秒,再加上存储缓存命中需要20毫秒,那么每次缓存命中只需要20毫秒,因此10次命中需要200毫秒。这听起来不错,但当您添加过期和失效,更不用说缓存失效,突然之间,您就达到了一个点,即每次未命中至少需要10次命中才能使缓存变得有用


缓存对于flash Mob来说非常好,但是对于临时工具来说,它可以浪费大量的时间和获得的资源。

+1 ehcache非常适合大多数缓存场景,它非常灵活+1 ehcache非常适合大多数缓存场景,它非常灵活由于数据频繁更改,命中率太低。性能命中率与此成正比。由于数据频繁更改,命中率太低。性能命中率与此成正比。