1.1.1. pfadd
向指定的hyperloglog中添加一个或多个元素。hyperloglog中重复的元素将被合并成一个元素。
语法:
PFADD key element [element ...]
参数:
key: 键名,键值为一个hyperloglog对象。
element:待添加的元素。
返回值:
1:hyperloglog的基数评估变化了。
0: 没有变化。
例子:
redis.coe2coe.me:6379> pfadd myhpp green blue yellow
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp green red blue
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp red
(integer) 0
redis.coe2coe.me:6379> pfcount myhpp
(integer) 4
1.1.2. pfcount
语法:
PFCOUNT key [key ...]
参数:
key:键名,键值为hyperloglog对象。
返回值:
整数:各个hyperloglog对象的基数之和,近似等于元素个数的总和。
例子:
redis.coe2coe.me:6379> pfadd myhpp green blue yellow
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp green red blue
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp red
(integer) 0
redis.coe2coe.me:6379> pfcount myhpp
(integer) 4
redis.coe2coe.me:6379> pfcount myhpp
(integer) 4
redis.coe2coe.me:6379> pfadd myhpp2 green red blue
(integer) 1
redis.coe2coe.me:6379> pfcount myhpp myhpp2
(integer) 4
redis.coe2coe.me:6379> pfadd myhpp3 hello
(integer) 1
redis.coe2coe.me:6379> pfcount myhpp myhpp2 myhpp3
(integer) 5
1.1.3. pfmerge
将指定的hyperloglog对象中的元素全部合并到另一个指定的hyperloglog对象中。
语法:
PFMERGE destkey sourcekey [sourcekey ...]
参数:
destkey:键名,目标对象的键名。合并前已经存在的元素不会被删除。
sourcekey:键名,源对象的键名。
返回值:
OK:操作成功。
例子:
redis.coe2coe.me:6379> pfadd myhpp green blue yellow
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp green red blue
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp red
(integer) 0
redis.coe2coe.me:6379> pfadd myhpp2 green red blue
(integer) 1
redis.coe2coe.me:6379> pfadd myhpp3 hello
(integer) 1
redis.coe2coe.me:6379> pfcount myhpp myhpp2 myhpp3
(integer) 5
redis.coe2coe.me:6379> pfmerge dst myhpp myhpp2 myhpp3
OK
redis.coe2coe.me:6379> pfcount dst
(integer) 5
redis.coe2coe.me:6379> pfadd dst test
(integer) 1
redis.coe2coe.me:6379> pfcount dst
(integer) 6
redis.coe2coe.me:6379> pfmerge dst myhpp myhpp2 myhpp3
OK
redis.coe2coe.me:6379> pfcount dst
(integer) 6