首页 > 编程语言 >HyperLogLog用法

HyperLogLog用法

时间:2023-08-26 16:25:33浏览次数:36  
标签:HyperLogLog UV 用户 用法 内存 统计 页面

场景引入:

两个概念:

  • UV:全程Unique Visitor,也叫独立访客量,是指通过互联网访问,浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录一次。
  • PV:全称PageView,也叫页面访问量或点击量,用户每次访问网站的一个页面,记录一次pv,用户多次打开页面,则记录多次pv。往往用来衡量网站的流量

UV统计izai服务端做会比较麻烦,因为要判断该用户是否已经统计过了,需要将统计过的用户信息保存。但是如果每个访问的用户都保存到Redis中,数据量会非常恐怖。

HyperLogLog用法

Hyperlogiog HLL是以L0g具法派率具法,用于定大的集合的星数而不需要存储其有值,关法原大家参考: https://juejin.cn/post/6844903785744056333#heading-0
Redis中的HLL是基于stimng结构实现的,单个HL的内存永远小16kb,内存占用的今人发指!作为价,其现量结果是部率性的,有小0.81 %误差,不对于UV统计来说,这完全可以忽路
image

实现UV统计

对于 HyperLogLog来说,天然的支持唯一性的数据,例如添加多个相同的id,那么只会存在一个
image

总结

HyperLogLog的作用:

  • 做海量数据的统计工作

HyperLogLog的优点:

  • 内存占用极低
  • 性能非常好

HyperLogLog的缺点:

  • 有一定的误差

标签:HyperLogLog,UV,用户,用法,内存,统计,页面
From: https://www.cnblogs.com/zgf123/p/17658950.html

相关文章

  • cv2.threshold阈值相关用法说明
    ret,dst=cv2.threshold(src,thresh,maxval,type)src:输入图,只能输入单通道图像,通常来说为灰度图dst:输出图thresh:阈值maxval:当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值type:二值化操作的类型,就是怎么处理阈值,包含以下5种类型:cv2.THRESH_BINARY;cv2.THRESH_BINARY......
  • path用法
    `path.js`是一个用于处理文件和目录路径的JavaScript库。以下是一些常用的`path.js`方法及其详细参数说明: 1.`path.join(...paths)`:将多个路径片段连接在一起,形成一个完整的路径。可以传递任意数量的参数,参数之间用逗号分隔。 ```javascriptconstpath=require('pa......
  • random用法
    random模块是Python标准库中提供的一个随机数生成模块,它提供了许多生成随机数的函数和方法。以下是random模块的一些常用方法及其详细参数说明: 1.random.random():返回一个[0,1)之间的随机浮点数。2.random.uniform(a,b):返回一个[a,b]之间的随机浮点数。3.random.randin......
  • sys用法
    sys模块是Python的内置模块,提供了一些与Python解释器和它的环境有关的函数。以下是sys模块的一些常用方法: 1.sys.version_info:返回一个元组,表示Python的版本信息。2.sys.version:返回Python解释器的详细版本信息。3.sys.executable:返回Python解释器的完整路径。4.sys.arg......
  • threading用法
    threading模块是Python的标准库之一,提供了多线程编程的支持。以下是threading模块的一些常用方法: 1.threading.Thread(target=function,args=(),kwargs={},name=None):创建一个新线程,并指定其执行的函数、参数和关键字参数。2.threading.active_count():返回当前活动的线程......
  • OS用法
    在Python中,os模块提供了许多与操作系统交互的功能。以下是一些常用的os模块用法: 1.获取当前工作目录: ```pythonimportos current_dir=os.getcwd()print("当前工作目录:",current_dir)``` 2.改变当前工作目录: ```pythonimportos new_dir="/path/to/n......
  • volatility用法
    以下的【Win7SP1x64】皆为操作系统名称 获取内存操作系统volatility-f文件名imageinfo 内存网络扫描–profile参数指定镜像volatility-f文件名--profile=Win7SP1x64netscan读取cmd命令volatility-f文件名--profile=Win7SP1x64amdscan 列举内存进程......
  • Allure用法
    查看官网:https://docs.qameta.io/allure/#_junit_5源码example:https://github.com/allure-examples/allure-examples/tree/master/allure-junit5/src/test/java/io/qameta/allure/examples/junit5  添加描述信息packagecom.allure;importio.qameta.allure.Allure;......
  • Tarjan基础用法
    \(\operatorname{Tarjan}\)基础用法目录\(\operatorname{Tarjan}\)基础用法\(\operatorname{Tarjan}\)求最近公共祖先前置芝士实现过程例题\(\operatorname{Tarjan}\)求割点、割边前置芝士\(\operatorname{Tarjan}\)求割点\(\operatorname{Tarjan}\)求割边例题\(\operatorn......
  • git 用法 记录 处理分支 合并分支 解决分支冲突
      gitstatus  查看分支状态gitadd.提交到暂存区gitcommit-m'优化'提交到准备pushgitpull 拉取最新分支gitpush 提交到git上 gitbranch 查看所有分支gitcheckout 分支名字  切换到指定分支gitpullorigin'分支名字'  拉取分支名字最......