Redis使用HyperLogLog统计海量数据的基数

Redis修行 — 基数统计:HyperLogLog 学 无 止 境 ,与 君 共 勉 。 简介 HyperLogLog是Redis中的高级数据结构,它主要用于对海量数据(可以统计2^64个数据)做基数统计(去重统计数量)。它的特点是速度快,占用空间小(12KB)。但是计算存会在误差,标准误差为0.81%。HyperLogLog只会根据输入元素来计算基数,而不会储存输入元素本身,所以他并不能判断给定的元素是否已经存在了。 基本指令 pfadd(k... 阅读详情

HyperLogLog的作用

用于统计海量数据的基数(存在误差)

这里就不讲解HyperLogLog的实现原理,可以自己百度。我们主要是学习怎么使用。了解其能做什么。

命令

HyperLogLog 提供了三个指令 PFADD、PFCOUNT、PFMERGE。
PFADD:增加一个数据。
PFCOUNT:统计key中的数据基数
PFMERGE: 将多个 HyperLogLog合并为一个 HyperLogLog。

使用HyperLogLog

这里使用的是spring boot项目。了解如何在spring boot中使用Redis.

public void HyperLogLog(){
	String key ="HyperLogLog";
	HyperLogLogOperations<String, String> opsForHyperLogLog = redisTemplate.opsForHyperLogLog();
	opsForHyperLogLog.add(key, "1","2","1");
	System.out.println("HyperLogLog中的数据基数为:"+opsForHyperLogLog.size(key));
	
}
redis学习笔记(二) - redis的数据类型bitmap/hyperloglog/GEO Unique visitor 独立访客,一般理解为客户端IP需要去重考虑Page view,页面访问量,不用去重Daily active user 日活跃用户量,登录或者使用了某个产品的用户数(去重复登录的用户)常用于反应网站、互联网应用或者网络游戏的运营情况Monthly active User 月活跃用户量看需求统计某个网站的UV、统计摸个文章的UV用户搜索网站关键词数量统计用户每天搜索不同词条个数是什么去重复统计功能的技术估计算法-就是hyperloglogHyperloglog如何做的? 阅读详情

相关推荐

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 818

RedisTemplate.opsForHyperLogLog()用法简介并举例

是RedisTemplate类提供的用于操作HyperLogLog类型的方法。HyperLogLog是一种基数估算算法,用于统计集合中元素的数量。需要注意的是,HyperLogLog是一种基数估算算法,虽然它能够估计集合中的元素数量,但是它的估计结果是一个近似值,并不是精确的数量。请注意,示例中的"mylog"是HyperLogLog的键名,“element1”、"element2"等是要添加的元素。方法的常见用法,你可以根据具体的业务需求选择适合的方法进行操作。

一起coding,一起嗨。 1535

基于人脸识别的驾驶员疲劳检测方法研究

摘 要交通安全问题愈发严重,疲劳驾驶已是造成交通事故的主要因素之一。为减少因疲劳驾驶造成的交通事故,本文设计了一种基于图像处理技术的疲劳驾驶监测系统,该系统结合了肤色模型、灰度积分投影技术以及PERCLOS方法,旨在通过实时视频图像分析准确检测驾驶员的疲劳状态。首先,系统通过肤色模型从图像中有效提取人脸区域,并在此基础上利用Haar级联分类器进行人脸检测,确保在人脸角度变化或部分遮挡的情况下依然能够实现高效识别。接着,灰度积分投影技术被应用于眼部定位,通过分析眼睛区域的灰度变化,精确确定眼睛的上下边界,从

carrott0617的博客 1005

redis中HyperLogLog使用(统计数据)

HyperLogLog是Redis中的高级数据结构,它主要用于对海量数据(可以统计2^64个数据)做基数统计(去重统计数量)。它的特点是速度快, 占用空间小(12KB)。但是计算存会在误差,标准误差为0.81%。HyperLogLog只会根据输入元素来计算基数,而不会储存输入元素本身, 所以他并不能判断给定的元素是否已经存在了。适合用来对海量数据进行unique统计,对内存占用有要求,而且还能够接受一定的错误率的场景。 对于union操作由于是O(N),在海量数据层面需要注意慢查询问题 基本指令 pfadd

zpflwy1314的博客 2264

ArcGIS实战:手把手教你用DEM和灾害点数据,5步搞定地质灾害风险区划图

本文详细介绍了使用ArcGIS进行地质灾害风险评估的完整流程,从DEM和灾害点数据出发,通过五步标准化操作生成专业风险区划图。重点讲解了信息量模型的应用,帮助读者掌握GIS技术在地质灾害易发性评价中的实践方法,提升风险评估效率与准确性。

weixin_30696427的博客 424

相衬成像介绍

相衬成像介绍

qq_41981768的博客 2911

redis-opsForHyperLogLog-PFADD 用户访问量统计

1、HyperLogLog数据类型介绍 HyperLogLog是redis 的一种特殊数据类型,是基数统计的算法! A{1 3 5 7 8 7} B{1 3 5 7 8 } 基数(不重复的元素)=5 ,可接受误差! 优点:占用内存是固定的,2^64不同元素的技术,只需要费12KB内存!如果从内存角度来比较的话 HyperLogLog首选! 2、业务:统计每个商品的用户访问量 public Long statisticsPvNum(Long userId,Long id){ /**

weixin_47366919的博客 1144

课堂练习及课后作业2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?本关任务:修改版本 0 内核,使得每发生 100 次时钟中断,就在屏幕上输出一个字符‘t’和当时的进程号,如“t(0)”表示0号进程运行时发生了时钟中断。本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?本关任务:修改版本 1 内核源码,使得每次时钟中断发生时,都在屏幕上输出字符‘t’。分析版本1内核,找到第一次时钟中断的恢复点地址。

Junds0的博客 1万+

Spring中使用Redis之基数(HyperLogLog)类型

一、Redis基数(HyperLogLog)简介 基数是一种算法,基数并表示存储元素,存储元素小号内存空间比较大,而是某一个有重复元素的数据的集合(一般是很大的数据集合)评估所需要的空间单元数,所以它没有办法进行存储。举个例子,一本英文著作由数百万个单词组成你的内存却不足以存储它们,那么我们分析一下业务。英文单词本身数有限的,在这本书中的几百万个单词中有许多重复的单词,除去重复的单词,这本书也就是...

weixin_42146366的博客 562

机器学习实战4-教育领域:学生成绩的可视化分析与成绩预测-详细分析

大家好,我是微学AI,今天给大家带来机器学习实战4-学生成绩的可视化分析与成绩预测,机器学习在教育中的应用具有很大的潜力,特别是在学生成绩的可视化分析与成绩预测方面。机器学习可以通过对学生的父母教育情况和学校表现等数据进行分析和挖掘,从而揭示潜在的学习模式和趋势。

微学AI的博客 7676

Linux ARM平台开发系列讲解(GPIO子系统) 2.3.2 GPIO子系统常用函数解析

1. 概述 该章节会记录一年常用的GPIO子系统常用函数,会更具情况不断更新 static inline int gpio_get_value(unsigned int gpio) 功能 :用于获取某个GPIO引脚上的值 gpio : gpio引脚号 返回值:非负值,得到的 GPIO 值;负值,获取失败。 static inline void gpio_set_value(unsigned int gpio, int value) static inline int gpio_cansleep(unsi

DSMGUOGUO的博客 668

redis应用--HyperLogLog

如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现? 如果统计 PV 那非常好办,给每个网页一个独立的 Redis 计数器就可以了,这个计数器的 key 后缀加上当天的日期。这样来一个请求,incrby 一次,最终就可以统计出所有的 PV 数据。 但是 UV 不一样,它要去重,同一个用户一天之内的多次访问请求只能计数...

weixin_30401605的博客 409

怎么调用onenet平台的API从而读取我们的设备数据和下发命令,做到控制开关

怎么调用onenet平台的API从而读取我们的设备数据和下发命令,做到控制开关 1、首先是怎么读取数据 读取的API是:http://api.heclouds.com/devices/datapoints?devIds=629063002 其中devids这个指的是你的设备ID 然后在我们的headers里面添加一些必要参数,就可以调用了 其中api-key的是你产品里面的master-apikey 把我们的参数写好就可以调用了,选择get方式,点击发送 这个value就是我们需要获取到的参数值了,

zyh960的博客 2万+

Redis HyperLogLog:海量数据基数统计实战

Redis的HyperLogLog是一种高效的概率型数据结构,用于估算海量数据中的基数(不重复元素数量)。其核心原理基于伯努利试验和哈希算法,通过统计哈希值中首个1的位置来估算基数,误差率约0.81%。Redis提供PFADD(添加元素)、PFCOUNT(获取基数)和PFMERGE(合并统计)等命令,适用于网站访客统计、APP活跃用户分析等场景。通过Python代码示例演示了其使用方法,展示了在保证性能的同时大幅降低内存占用的优势,是处理大规模基数统计的理想选择。

fykam的博客 1160

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Redis系列:HyperLogLog实现海量数据基数统计

我们来回顾下在这个系列的篇深刻理解高性能Redis的本质中介绍过Redis的几种基本数据结构,动态字符串(REDIS_STRING):整数(REDIS_ENCODING_INT)、字符串(REDIS_ENCODING_RAW)双端列表(REDIS_ENCODING_LINKEDLIST)压缩列表(REDIS_ENCODING_ZIPLIST)跳跃表(REDIS_ENCODING_SKIPLIST)哈希表(REDIS_HASH)整数集合(REDIS_ENCODING_INTSET)

Ly768768的博客 1184

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

追求性能极致 - Redis:HyperLogLog实现海量数据基数统计

我们来回顾下在这个系列的第一篇深刻理解高性能Redis的本质中介绍过Redis的几种基本数据结构,动态字符串(REDIS_STRING):整数(REDIS_ENCODING_INT)、字符串(REDIS_ENCODING_RAW)双端列表(REDIS_ENCODING_LINKEDLIST)压缩列表(REDIS_ENCODING_ZIPLIST)跳跃表(REDIS_ENCODING_SKIPLIST)哈希表(REDIS_HASH)

smart_an的专栏 1122

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Redis HyperLoglog基数统计, PubSub发布订阅, Stream消息队列

HyperLoglog基数统计 Redis 经常使用的数据类型有字符串、列表、散列、集合和有序集合,但这些类型并不能满足所有的应用场景,因此,Redis 的后续版本不断的扩增其他数据类型来增强 Redis 适用能力。在 Redis 2.8.9 版本中新增了 HyperLogLog 类型。 什么是HyperLoglog HyperLoglog 是 Redis 重要的数据类型之一,它非常适用于海量数据的计算、统计,其特点是占用空间小,计算速度快。 HyperLoglog 采用了一种基数估计算法,因此,最终

youandme520的专栏 453

Redis基础面试题:Redis中的HyperLogLog数据结构及其在基数统计中的高效应用

最后,你能总结一下HyperLogLog的核心优势吗?Victor:当然。高效内存利用:仅需固定大小的内存即可处理海量数据。高精度估算:误差率低至1%以内,满足大多数应用需求。分布式友好:支持合并操作,适合分布式环境。简单易用:Redis提供了简洁的API,开发者可以轻松集成到项目中。这些特性使得HyperLogLog成为基数统计领域的首选工具之一。

qq_61302385的博客 898

SpringBoot整合Redis的HyperLogLog实现高性能IP地址统计

之前写过Redis的HyperLogLog相关的文章,告诉大家这个稍微冷门的玩意儿到底能干些什么。这里还是稍微提一下,Redis的HyperLogLog主要用于对大量数据进行基数统计,这里的"大量"可以理解为能够处理亿级甚至更高级别的数据(一点不夸张)。其所需要占用的空间仅为12KB,且在一定误差范围内(标准误差0.81%)可以得出近似正确的结果。所以今天,我继续给大家分享一个很适合使用HyperLogLog的场景案例,希望对大家的日常工作有所启发。

竹林幽深 439

七天玩转Redis | Day3 Redis地理位置、基数统计、位图场景使用详解

文章目录Redis之Gaospatial地理位置Redis之HyperLoglog基数统计Redis之Bitmap位图场景 Redis之Gaospatial地理位置 国内城市经纬度在线查询工具http://www.jsons.cn/lngcode/ 我们如果在Redis中查询位置,则需要先在数据库中输入该坐标。 添加一个或多个地理位置的坐标 我们使用GEOADD指令来添加地理位置坐标 语法:GEOADD key longitude latitude member [longitude latitude m

diviner_s的博客 1634

基数统计算法 - HyperLogLog 及布隆过滤器

Redis1、前言2、HyperLogLog 介绍3、基础使用4、布隆过滤器5、编译方式5.1、下载并安装布隆过滤器6、启动验证 上一篇文章(地址) 1、前言 在我们实际开发的过程中,可能会遇到这样一个问题,当我们需要统计一个大型网站的独立访问次数时,用什么数据类型比较好呢? 如果我们使用 Redis 中的集合来统计,当它每天有数千万级别的访问时,将会是一个巨大的问题 因为这些访问量不能被清空,我们运营人员可能会随时查看这些信息,那么随着时间的推移,这些统计数据所占用的空间会越来越大,逐渐超出我们能承载最大

weixin_51927215的博客 454

node-redis HyperLogLog:基数统计的高效实现

在当今大数据时代,如何高效统计海量数据的唯一元素数量成为了一个重要挑战。node-redis HyperLogLog 提供了一种革命性的基数统计算法解决方案,能够在极小内存占用下实现近似准确的计数统计。💡 ## 什么是HyperLogLog?为什么它如此重要? HyperLogLog是一种概率数据结构,专门用于估算大数据集的基数(唯一元素数量)。与传统方法相比,它最大的优势是**内存占用极低

gitblog_01127的博客 472

redis | 十、redis之HyperLogLog

redis系列文章:https://liudongdong.top/categories/redis本篇来源:https://liudongdong.top/archives/redisshi-redis-zhi-hyperloglog公众号:雨中散步撒哈拉备注:欢迎关注公众号,一起学习,共同进步!一、HyperLogLog基数统计HyperLogLog,下面简称为HLL,它是 LogLog 算法的升级版,作用是能够提供不精确的去重计数。存在以下的特点:代码实现较难。能够使用极少的内存来统计巨量的数据,在

liu_dongdong55的博客 373

Redis:HyperLogLog使用与应用场景

https://blog.csdn.net/maoyuanming0806/article/details/81814610 https://www.zhihu.com/question/65980801 Redis HyperLogLog介绍及应用 简介 Redis 在 2.8.9 版本添加了 HyperLogLog 结构 HyperLogLog 是用来做基数统计的算法,即对集合去重元素的计数 在输入元素的数量不超过2^64个,计算基数所需的内存最多12KB,该结构使用一种近似值算法,标准误差

yb223731的博客 739

基于 Redis 的基数统计:高效的大规模去重与计数

本文介绍了如何使用Redis的HyperLogLog进行高效的基数统计。HyperLogLog是一种概率算法,能以极低的内存开销估算集合中不同元素的数量,误差约为0.81%。相比传统方法(如哈希表),它节省大量内存且查询高效。Redis提供PFADD、PFCOUNT和PFMERGE等命令支持HyperLogLog操作。文中通过Python示例演示了如何添加元素、获取基数估算值及合并多个HyperLogLog。该技术适用于日志去重、流量分析等大数据场景,能有效处理海量数据基数统计问题。

深耕后端、偏爱架构,用代码与设计构建可靠系统 900

redis学习-19- Redis HyperLoglog基数统计

redis学习-19- Redis HyperLoglog基数统计

时光 231
上一篇: Redis使用Geo存储经纬度
下一篇: Spring boot中使用Actuator监控应用
村口老师傅
博客等级 码龄9年 67粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值