redis HyperLogLog 可以接受多个元素作为输入,并给出输入元素的基数估算值.
基数:集合中不同元素的数量。比如 [foo', 'bar', 'foobar', 'bar', 'test'}]的基数就是 4.
HyperLogLog 只提供了三个函数:pfadd、pfcount、pfmerge
pfadd:
添加指定元素到 HyperLogLog 中。
pfadd(key, *values)
返回值
整型,如果至少有个元素被添加返回 1, 否则返回 0。
pfcount:
返回指定 HyperLogLog 的基数值。
pfmerge:
将多个 HyperLogLog 合并为一个 HyperLogLog。
实例:
>>> import redis >>> r = redis.Redis() >>> r.pfadd('hyperlog1', *['foo', 'bar', 'foo', 'foobar', 'test']) 1 >>> r.pfcount('hyperlog1') 4 >>> r.pfadd('hyperlog2', *['foo', 'bar', 'man', 'xie', 'xiemanrui']) 1 >>> r.pfcount('hyperlog2') 5 >>> r.pfmerge('hyperlog1', 'hyperlog2') True >>> r.pfcount('hyperlog1') 7 >>>