【问题标题】:Redis Hyperloglog limitationsRedis Hyperloglog 限制
【发布时间】:2016-04-05 16:02:13
【问题描述】:

我正在尝试使用 Redis Hyperloglog 以一种老套的方式解决问题,但我想了解的是 Hyperloglog 对数据或分布的限制和假设。

count-min 和bloom 过滤器有自己的一组限制,但谷歌在提供有关 Hyperloglog 应用程序和限制的大量信息方面没有提供帮助。

我正在使用 Redis Hyperloglog,正如 Antirez 描述的 there are no practical limits to the cardinality of the sets we can count. 但从理论的角度来看,Hyperloglog 是否对数据或分布做出任何假设/约束?

【问题讨论】:

    标签: redis cardinality hyperloglog


    【解决方案1】:

    HyperLogLog 算法假定使用了强大的通用散列函数。 Redis 使用 MurmurHash64A 从实用的角度来看应该足够好。 Redis HyperLogLog 实现每个寄存器使用 6 位,这允许表示 64 位哈希值内的任何位运行长度。因此,我看到的唯一限制是 64 位哈希值本身。如果基数在 2^64 的数量级,将会有很多哈希冲突,最终会导致较大的估计误差。但是,这种数量级的基数在实践中从未发生过。

    【讨论】:

      猜你喜欢
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2017-07-04
      相关资源
      最近更新 更多