繁体   English   中英

它们是Java的Map的任何体面的磁盘实现吗?

[英]Are they any decent on-disk implementations of Java's Map?

我正在寻找java.util.Map的磁盘实现。 没有什么太花哨的东西,只是我可以指向一个目录或文件并让它以其选择的某种方式将其内容存储在那里。 有谁知道这样的事情?

您可以查看Disk-Backed-map项目。

在Java中实现磁盘支持映射的库

一个小型库,提供用于存储大量键值对的磁盘支持的映射实现。 对于非常简单的键/值对,地图实现(HashMap,HashTable)最大可以输出大约3-4百万个键/ GB内存,并且在大多数情况下,限制要低得多。 另一方面,DiskBacked地图可以存储在16Million(64bit JVM)到20Million(32bit JVM)密钥/ GB之间,无论密钥/值对的大小如何。

如果您正在寻找基于key-object的结构来保存数据,那么NoSQL数据库是一个非常好的选择。 您会发现其中一些MongoDBRedis可以扩展并执行大数据集,除了基于哈希的查找外,它们还提供了有趣的查询和事务功能。

实质上,这些类型的系统是Map实现。 并且实现自己的适配器实现java.util.Map来桥接它们应该不会太复杂。

MapDB( mapdb.org )完全符合您的要求。 除了磁盘支持的TreeMap和HashMap,它还为您提供了其他集合类型。

它的地图也是线程安全的,并且具有非常好的性能。

查看功能

您可以使用简单的EHCache实现吗? EHCache的优点在于它可以非常简单地实现:-)

我认为你排除了序列化/反序列化实际的Map实例?

对于这个问题,这似乎是一个相对较新的开源解决方案,我已经使用过它,并且到目前为止还喜欢它

https://github.com/jankotek/JDBM4

Chronicle Map是解决这个问题的现代化和最快速的解决方案。 它实现了ConcurrentMap接口并将数据保存到磁盘(在引擎盖下,它通过将Chronicle Map的内存映射到文件来完成)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM