为什么要使用开箱即用的缓存产品,如ehcache或memcached?
不是一个简单的hashmap吗?我理解这是一个天真的问题,但我希望看到一些关于何时简单的hashmap足够并且第三方缓存解决方案过度的答案。
答案 0 :(得分:4)
Ehcache可以给你的一些东西,你必须用HashMap管理自己。
驱逐政策。如果您的数据永远不会增长,那么无需担心。但是如果你想防止内存泄漏最终破坏你的应用程序,那么你需要一个驱逐策略。使用ehcache,您可以配置缓存中元素的生存时间和空闲时间。
使用Terracotta进行集群缓存。如果您有多个tomcat用于故障转移/可伸缩性,那么您可以将Ehcache链接到Terracotta集群,以便所有实例在需要时可以看到相同的数据。
透明磁盘溢出 - 在tomcat服务器或赤土陶器集群上。当数据不适合堆时。
关闭堆存储。 BigMemory等新技术意味着您可以访问更大的内存缓存,而无需GC开销。
并发。 Ehcache可以使用ConcurrentDistributedMap在集群配置中提供最佳性能。
这只是冰山一角。
答案 1 :(得分:1)
但是如果你需要溢出功能(当地图“满”时写入磁盘),条目到期(暂时没有“触摸”条目时删除),群集缓存,冗余缓存,你会重新开始不要重新发明轮子范例,并使用第三方缓存解决方案。
我已经使用ehcache近3年了。我只使用了整个功能集的一部分,但我做的那些,工作得很好。