我对Redis HyperLogLog的工作原理以及什么时候使用它有一些基本的想法。
在使用它之前,我做了一个测试:我将一些连续的数字pfadd到一个HLL条目(以模仿用户ed),Redis很快就给出了一个假阳性结果。准确地说,如果您将编号193 pfadd到一个HLL条目,则会报告编号202已经存在于该条目中。您可以在redis-cli中测试它:
127.0.0.1:6379> del ns
(integer) 0
127.0.0.1:6379> PFADD ns 193
(integer) 1
127.0.0.1:6379> PFADD ns 202
(integer) 0我知道HyperLogLog是一种概率数据结构,但是它不是很容易给出这样的误报吗?我是不是误解了什么?
发布于 2017-09-04 20:44:22
PFADD的答复-它没有表示存在,而是数据结构中的内部寄存器是否已更改。对于类似的(在概率意义上)设置成员资格的数据结构,请检查布隆过滤器及其Redis实现,重新布隆(http://rebloom.io)。
https://stackoverflow.com/questions/46036395
复制相似问题