{{format('0')}} {{format('305')}} {{format('798')}}

【redis】三大特殊类型:hyperloglogs 基数统计 [ 编程杂谈 ]

大数据男孩 文章 正文

想做一个技术博客,奈何实力不够
分享

明妃

{{nature("2022-08-14 17:23:19")}}更新

说明

说明是基数

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

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

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

评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Spark 2.0 单机模式与集群模式 安装

{{nature('2020-01-02 16:47:07')}} {{format('12518')}}人已阅读

TOP 3
Office 2016 Pro Plus 激活

{{nature('2019-12-11 20:43:10')}} {{format('9407')}}人已阅读

TOP 4
Linux上 MySQL 开启远程登陆的两种方法

{{nature('2019-12-26 17:20:52')}} {{format('7400')}}人已阅读

TOP 5
Linux 安装 MySQL 5.7

{{nature('2019-12-26 16:03:55')}} {{format('4877')}}人已阅读

目录

标签云

Redis hyperloglogs

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏