寻找具有高效查找和磁盘持久性的String键控映射

时间:2011-07-25 13:02:15

标签: java performance lucene

我有一个数据结构,它将字符串作为引用整数值的键。我无法将所有String键放入内存中。我最重要的重点是执行快速查找。如果我要自己实现这个(没有工具或库),我正在考虑实现一个b树,其中节点是字符串的utf-8字节值。深度将对应于字符串中的位置。但是,在某些时候,树需要持久保存在磁盘上,因为整个内存不适合内存。我可以想象很多优化,我没有时间写。在我开始之前,我想知道是否已经有这样的工具吗?也许lucene可能会做到这一点,但我不确定,因为我需要精确匹配(不模糊)。有任何想法吗?感谢。

3 个答案:

答案 0 :(得分:2)

尝试Redis。它提供持久的数据结构。

答案 1 :(得分:1)

请参阅HTree项目中的BTreeJDBM

他们没有实现Map界面,但提供类似的API。

答案 2 :(得分:0)

也许这太容易了 - 为什么不使用像md5或sha1这样的散列策略?显然,进行散列的时间会考虑因素,如果你需要知道实际的字符串值,这不会解决你的问题,但也许你不知道。