是否有适用于 Java 的开源堆外缓存解决方案?
Terracotta BigMemory有没有开源的替代品?
实际上,我甚至没有设法找到任何商业替代品。我对纯Java解决方案感兴趣,它将在JVM中工作,而无需任何JNI和C支持的解决方案。
Terracotta BigMemory有没有开源的替代品?
实际上,我甚至没有设法找到任何商业替代品。我对纯Java解决方案感兴趣,它将在JVM中工作,而无需任何JNI和C支持的解决方案。
有一个非常好的缓存解决方案,名为MapDB(以前的JDBM4)。它支持和,但它只是嵌入的应用程序。它还支持基于持久性文件的缓存。HashMap
TreeMap
堆外缓存的示例:
DB db = DBMaker.newDirectMemoryDB().make();
ConcurrentNavigableMap<Integer, String> map = db.getTreeMap("MyCache");
或基于持久性文件的缓存:
DB db = DBMaker.newFileDB(new File("/home/collection.db")).closeOnJvmShutdown().make();
ConcurrentNavigableMap<Integer,String> map = db.getTreeMap("MyCache");
我自己也一直有这个问题,所以我只是用我的发现更新以前的答案。
我从quora中找到了这个帖子,其中也谈到了同样的问题:
http://www.quora.com/JVM/Whats-the-best-open-source-solution-for-java-off-heap-cache
除了直接记忆(去年没有真正更新)之外,似乎很合适的不同解决方案是
但是,我更有兴趣找到一个足够大的应用程序,它使用以下三种方法中的任何一个:directmemory,SpyMemcached,xmemcached。如果我找到一个,我会更新这个答案。