Caching 与静态HashMap相比,使用ehcahce的优势

Caching 与静态HashMap相比,使用ehcahce的优势,caching,static,annotations,ehcache,Caching,Static,Annotations,Ehcache,我一直使用java singleton类满足我的基本缓存需求。 现在这个项目正在使用ehcache,在没有深入研究源代码的情况下,我无法找出singleton模式的错误 i、 e使用ehcahce框架的好处是什么?除了可以通过使用xml配置和注释来完成缓存,而无需编写样板代码(即静态哈希映射)这取决于您对缓存机制的需求。Ehcache提供了许多很酷的功能,需要大量精心设计的代码才能手动完成: LRU、LFU和FIFO缓存逐出策略 灵活配置 坚持 复制 还有很多 我建议您在上查看它们,并确定您

我一直使用java singleton类满足我的基本缓存需求。
现在这个项目正在使用ehcache,在没有深入研究源代码的情况下,我无法找出singleton模式的错误


i、 e使用ehcahce框架的好处是什么?除了可以通过使用xml配置和注释来完成缓存,而无需编写样板代码(即静态哈希映射)

这取决于您对缓存机制的需求。Ehcache提供了许多很酷的功能,需要大量精心设计的代码才能手动完成:

  • LRU、LFU和FIFO缓存逐出策略
  • 灵活配置
  • 坚持
  • 复制
  • 还有很多

我建议您在上查看它们,并确定您的项目中是否真的需要一些东西。

此外,还有一个群集的封闭源代码版本的ehcache,它允许您使用分布式缓存。这可能是你想考虑使用EHCHACE的原因之一。

最重要的一个:

溢出到磁盘的能力-这是普通HashMap中所没有的,编写这样的东西绝非易事。EhCache的功能与配置键值数据库一样简单

即使您不使用磁盘溢出,也有一个大型的样板文件可以用您自己的实现编写。如果可以加载整个数据库,那么使用内存数据库并在写入时持久化,在启动时恢复将是解决方案。但是内存有限,您必须从内存中删除元素。但哪一个,基于什么?此外,必须断言缓存元素不太旧。应更换旧的元件。如果需要从缓存中删除元素,则应从过时的元素开始。但当用户请求某些内容时,您是否应该这样做?这会减慢请求的速度。还是开始你自己的线程

有了EhCache,您就有了一个库,所有这些问题都在其中得到了解决和测试