Java:基于磁盘的快速哈希集

coc*_*two 8 java disk-based hashset

我需要存储一个大的哈希集,能够包含多达大约2亿个40位值.将其存储为2亿64位值是可以接受的(尽管有2亿*16位丢失).

要求是:

  • 微小的内存占用(磁盘空间不是问题,内存是)

  • 快速contains(long l)add(long l)方法(比SQL快得多)

  • 嵌入式

  • 免费且没有讨厌的许可(没有Berkeley DB).LGPL很好.

  • 没有误报,也没有假阴性,所以像基于磁盘的布隆过滤器这样的东西不是我追求的

SQL 不是我追求的.

因为我真的觉得我的东西后更快速的像这样的(注意解决方案如何比SQL解决方案快得多):

快速的基于磁盘的哈希表?

Google有这样的Java API吗?

基于磁盘的快速键/值对实现我只使用"密钥"工作吗?

或者是其他东西?

我宁愿不重新发明.

Pet*_*rey 2

如果您能负担得起 128 GB 磁盘,则每 40 位值可以存储一位。然后,您可以使用随机访问文件来检查某个位的设置或更改它。您不必插入任何值或维护索引。