第三方缓存软件 – 它们提供了什么?

为什么要使用开箱即用的缓存产品,如ehcache或memcached?

不是一个简单的hashmap吗? 我知道这是一个天真的问题但我希望看到一些关于何时简单的hashmap足够并且第三方缓存解决方案过度的答案。

Ehcache可以给你的一些东西,你必须用HashMap来管理自己。

驱逐政策。 如果您的数据永远不会增长,那么无需担心。 但是如果你想防止内存泄漏最终破坏你的应用程序,那么你需要一个驱逐策略。 使用ehcache,您可以配置缓存中元素的生存时间和空闲时间。

与兵马俑的集群缓存。 如果您有多个tomcat用于故障转移/可伸缩性,那么您可以将Ehcache链接到Terracotta集群,以便所有实例在需要时可以看到相同的数据。

透明磁盘溢出 – 在tomcat服务器或赤土陶器集群上。 当数据不适合堆时。

关堆存储。 BigMemory等新技术意味着您可以访问更大的内存缓存,而无需GC开销。

并发。 Ehcache可以使用ConcurrentDistributedMap在集群配置中提供最佳性能。

这只是冰山一角。

正如汤姆所说,要求说出一切。 如果你需要的只是一个使用键值对放入数据的地方,那么hashmap就可以了。

但是如果你需要溢出function(当地图“满”时写入磁盘),条目到期(一段时间内没有“触摸”条目时删除),群集缓存,冗余缓存,你就会回到重新发明轮子范例,并使用第三方缓存解决方案。

我已经使用ehcache近3年了。 我只使用了整个function集的一部分,但我做的那些,工作得很好。