当前位置:网站首页>11_Redis_Hyperloglog_命令
11_Redis_Hyperloglog_命令
2022-07-02 12:00:00 【听*雨声】
Hyperloglog
什么是基数?
A{ 1,3,5,7,8,7 }
B{ 1,3,5,7,8 }
基数(不重复的元素) = 5,可以接受误差!
简介
Redis 2.8.9版本就更新了Hyperloglog数据结构!
Redis Hyperloglog基数统计的算法!
优点:占用的内存是固定,2^64不同的元素的技术,只需要废12KB内存!如果要从内存角度来比较的话Hyperloglog首选!
网页的UV(一个人访问一个网站多次,但是还是算作一个人! ) 0.81%错误率!统计UV任务,可以忽略不计的!
传统的方式,set(元素不允许重复)保存用户的id,然后就可以统计set 中的元素数量作为标准判断!
这个方式如果保存大量的用户id,就会比较麻烦!我们的目的是为了计数,而不是保存用户id;
127.0.0.1:6379> PFADD mykey a b c d e f g h i j k // 创建第一组元素
(integer) 1
127.0.0.1:6379> PFCOUNT mykey // 统计 mykey元素的基数数量
(integer) 11
127.0.0.1:6379> PFADD mykey2 i j k z d e // 创建第二组元素mykey2
(integer) 1
127.0.0.1:6379> PFCOUNT mykey2
(integer) 6
127.0.0.1:6379> PFMERGE mykey3 mykey mykey2 // 合并两组 mykey mykey2 => mykey3 并集
OK
127.0.0.1:6379> PFCOUNT mykey3 // 看并集的数量!
(integer) 12
如果允许容错,那么一定可以使用Hyperloglog
如果不允许容错,就使用set或者自己的数据类型即可!
边栏推荐
猜你喜欢

Mavn builds nexus private server

为什么只会编程的程序员无法成为优秀的开发者?

Dragonfly low code security tool platform development path

实用调试技巧

Why can't programmers who can only program become excellent developers?

geoserver离线地图服务搭建和图层发布

btrace-(字节码)动态跟踪工具

IE 浏览器正式退休

可视化搭建页面工具的前世今生

Practice of compiling principle course -- implementing an interpreter or compiler of elementary function operation language
随机推荐
学习使用php将时间戳转换为大写日期的方法代码示例
Learn the method code example of converting timestamp to uppercase date using PHP
CTO如何帮助业务?
SQL 后计算的利器 SPL
C code audit practice + pre knowledge
02_线性表_顺序表
[C language] explain the initial and advanced levels of the pointer and points for attention (1)
2021-2022学年编译原理考试重点[华侨大学]
AtCoder Beginner Contest 254
C语言习题---(数组)
03_線性錶_鏈錶
How to solve the problem of database content output
Tidb environment and system configuration check
MFC console printing, pop-up dialog box
Leetcode - Search 2D matrix
04_ 栈
.NET Core 日志系统
871. 最低加油次数 : 简单优先队列(堆)贪心题
TiDB 软件和硬件环境建议配置
06_栈和队列转换