2

键是长散列,因此数据集不适合 ram。它不是那么大:10-20Gb 但将其存储在 RAM 中对我来说太贵了。我每秒有 100-1000 次查询,询问密钥是否存在,偶尔会有 1-10 次插入。一段时间以来,我一直在使用 mongo,但它似乎无法胜任这项任务,因为它无法控制哪些索引存储到 ram 中,哪些没有,所以它经常碰到硬盘。

我很乐意使用 redis 或类似的东西,但 ram 是瓶颈。

4

1 回答 1

1

散列您的键并将它们放入关系表或散列表中。这是最简单的解决方案。接下来是使用 Bloom 过滤器,它能够对 99% 甚至更多的访问进行排序(如果密钥存在 - 如果密钥存在,您将不会获得任何东西,因为它可能是误报)。

不知道为什么你的哈希值那么长。你使用什么散列技术?您可能想要切换到 SHA-160 之类的东西,它的输出很小,但(几乎)在密码学上是安全的。

于 2012-12-02T12:18:36.420 回答