当前位置:网站首页>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或者自己的数据类型即可!
边栏推荐
猜你喜欢
Dragonfly low code security tool platform development path
Btrace- (bytecode) dynamic tracking tool
【C语音】详解指针进阶和注意点(2)
N皇后问题的解决
【NOI模拟赛】刮痧(动态规划)
Li Chuang EDA learning notes 15: draw border or import border (DXF file)
Jenkins Pipeline 应用与实践
[c voice] explain the advanced pointer and points for attention (2)
20_Redis_哨兵模式
关于网页中的文本选择以及统计选中文本长度
随机推荐
解决el-radio-group 回显后不能编辑问题
qml 弹窗框架,可定制
.NET Core 日志系统
LeetCode 2310. The number of digits is the sum of integers of K
List集合&UML图
LeetCode_滑动窗口_中等_395.至少有 K 个重复字符的最长子串
Principles, language, compilation, interpretation
二叉树的遍历方式主要有:先序遍历、中序遍历、后序遍历、层次遍历。先序、中序、后序其实指的是父节点被访问的次序。若在遍历过程中,父节点先于它的子节点被访问,就是先序遍历;
如何对 TiDB 进行 TPC-C 测试
学习使用php实现公历农历转换的方法代码
数据库内容输出有问题怎么解决
[untitled] leetcode 2321 Maximum score of concatenated array
Btrace- (bytecode) dynamic tracking tool
Jenkins Pipeline 应用与实践
[noi Simulation Competition] scraping (dynamic planning)
Fundamentals of software testing
华为面试题: 没有回文串
Huawei interview question: no palindrome string
[QNX hypervisor 2.2 user manual]6.3 communication between guest and external
CDN 在游戏领域的应用