HyperLogLog主要用来做基数统计,即取count distinct。用HyperLogLog做基数统计有一个好处,那就是不会因为数据量大而占用很多内存,即使数据量再大,占用的内存也最多12kb。

HyperLogLog只会根据输入的数据计算基数,并不会存储数据,所以不能获取输入的数据。HyperLogLog计算出的基数只是个近似值,在大数据量时,可能有一些误差,这是由算法决定的,不可调和。

HyperLogLog key用type命令查看,会返回"string",用get命令查看,会返回一个以"HYLL"开头的字符串。

HyperLogLog涉及的命令以pf开头,有三个,分别是pfadd、pfmerge、pfcount。

1、pfadd:往一个HyperLogLog类型的key中插入数据

语法:pfadd key element [element . . .]

如pfadd rpc thrift grpc dubbo taf trpc

2、pfmerge:合并一个或多个HyperLogLog类型的key的基数集到一个新的HyperLogLog类型的key中

语法:pfmerge destkey sourcekey [sourcekey . . .]

假如还有一个HyperLogLog类型的key,pfadd application_protocol ftp telnet http trpc

pfmerge po rpc application_protocol

3、pfcount:返回一个或多个HyperLogLog类型的key的近似基数

语法:pfcount key [key . . .]

如pfcount rpc,会返回5。

pfcount application_protocol,会返回4。

pfcount po,会返回8。

pfcount rpc application_protocol,会返回8。

pfcount rpc application_protocol po,会返回8。

 

HyperLogLog类型的key可以持久化吗?实测,可以。

相关文章:

  • 2021-11-17
  • 2022-12-23
  • 2020-10-13
  • 2021-10-09
  • 2021-06-17
猜你喜欢
  • 2021-09-17
  • 2021-09-22
  • 2021-11-09
  • 2021-11-26
  • 2022-01-10
相关资源
相似解决方案