【redis】三大特殊类型:hyperloglogs 基数统计

说明

说明是基数

数据集:{1,1,2,6,7,8,9}

那么这个数据的基数集为: {1,2,6,7,8,9}

hyperloglogs 优势

  • 在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的
  • 每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64不同元素的基数。

使用

添加元素

pfadd k element [element ...]

127.0.0.1:6379> PFADD k a b c d d
(integer) 1

统计基数

pfcount k key [key ...]

127.0.0.1:6379> pfcount k
(integer) 4

合并多个 HyperLogLog

pfmerge destkey sourcekey [sourcekey ...]

  • destkey:合并结果保存的 HyperLogLog 集
127.0.0.1:6379> pfadd kk a s d f g g
(integer) 1
127.0.0.1:6379> pfmerge key kk k
OK
127.0.0.1:6379> pfcount key
(integer) 7

使用场景

网页的UV统计

传统的方式,set 存储用户的id,然后取统计元素的数量,如果这种方式要保存大量的用户id,就很麻烦。统计UV是为了计数,而不是保存用户id

发表评论 / Comment

用心评论~