一、应用场景:
统计注册 IP 数 / 统计每日访问 IP 数 / 统计页面实时 UV 数 / 统计在线用户数等
注意:它也有局限性,就是只能统计基数数量,而没办法去知道具体的内容是什么。
它和bitmap相比,属于两种特定统计情况,简单来说,HyperLogLog 去重比 bitmap 方便很多。
1、最典型的是统计访问 IP 数
指令 PFADD key element [element ...] 添加指定元素到 HyperLogLog 中。
PFCOUNT key [key ...] 返回给定 HyperLogLog 的基数估算值。
PFMERGE destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog
直接贴例子:
用命令PFCOUNT 求得的ip数量,直接去重了,简单直接,非常棒。
redis> PFADD ip:20160929 "1.1.1.1" "2.2.2.2" "3.3.3.3"
(integer) 1
redis> PFCOUNT ip:20160929
(integer) 3
redis> PFADD ip:20160928 "1.1.1.1" "4.4.4.4" "5.5.5.5"
(integer) 1
redis> PFCOUNT ip:20160928 ip:20160929
(integer) 5