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

时间:2011-02-08 00:45:21

标签: java caching

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

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

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

这只是冰山一角。

答案 1 :(得分:1)

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

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

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