用于Java的开源分布式缓存

时间:2012-09-18 09:58:57

标签: java caching ehcache terracotta

可以在Java中使用的最佳开源分布式缓存是什么?

我认为这是EHCache,但显然只有在使用Terracotta Server Array(商业产品)时才能在多个节点上扩展。

我的目标是以一定的延迟实时建立流数据的缓存,我的实际估计数据大小为8gb,而生产速度要慢得多,大约为3mb每秒。

由于存在初始延迟,我希望我的缓存也可以被复制,因为当从0开始时,我的缓存需要一个热身期,我真的很想避免。

6 个答案:

答案 0 :(得分:4)

Memcached值得研究。

答案 1 :(得分:2)

我建议您查看名为Hazelcast的产品 虽然它本身不是分布式缓存,但它是一个非常可扩展且易于使用的数据网格。

顺便说一句,如果你能告诉我们有什么要求可能会更好,有很多开源产品可以满足你的需求......

希望这有帮助

答案 2 :(得分:2)

您不需要Terracotta的商业许可来集中您的(Eh)缓存...... 使用多个条带时需要许可证,但一个服务器(可能是被动的)不需要任何许可证

答案 3 :(得分:2)

Apache Ignite具有功能丰富的分布式数据网格,当然,它支持分布式缓存。您可以在此处找到更多信息:https://ignite.apache.org/features/datagrid.html

答案 4 :(得分:1)

试用TayzGrid,它是一个开源In-Memory Data Grid,也称为内存数据网格。

  OP:我的目标是以一定的延迟实时建立流数据缓存,我的实际估计数据大小为8gb,而生产率则慢得多,顺序每秒3mb。

开源版本已准备就绪,可轻松满足100GB的数据需求。与此相比,您的数据非常小:)

  

OP:我希望我的缓存也可以复制

您的愿望已被授予:Replicated Cache。引用;

  

两个或多个内存数据网格服务器构成一个复制缓存集群。每个数据网格服务器都包含数据网格中的所有数据。在任何服务器上执行的任何更新都以同步方式传播到群集中的所有其他服务器

答案 5 :(得分:0)

您可以使用memcached

或Redis(http://code.google.com/p/redis/) - >存储不易变化

或twemcache(http://engineering.twitter.com/2012/07/caching-with-twemcache.html)