3

我想知道在像 Hazelcast 这样的键值存储中使用哈希(CityHash、Murmur 等)作为键是否是个好主意。我预计数据库中有大约 2,000,000,000 条记录 (URL),因此可能会发生冲突。通过哈希冲突丢失一些数据并不是非常关键,但当然最好避免它们。

一条记录包含 URL、时间戳、状态码。主要操作是插入和查找 URL 是否已经存在。

那么,鉴于速度是相关的,你会建议什么:

  • 使用ID 生成器,或
  • 使用诸如 CityHash 或 Murmur 之类的哈希算法,或
  • 使用相关的字符串,在这种情况下是 URL 本身?
4

1 回答 1

3

Hazelcast 不依赖于密钥对象的 hashCode/equals 方法,而是使用密钥二进制表示的 MurMur 哈希。

简而言之,您不应该真正担心哈希冲突。

于 2015-06-12T10:51:20.350 回答