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
>>>