ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis之Hyperloglog及Bitmaps

2021-09-23 14:30:10  阅读:197  来源: 互联网

标签:127.0 Hyperloglog 0.1 Redis Bitmaps 6379 integer sign mykey2


Hyperloglog

什么是基数?
A{1,3,5,7,4,9}
B{1,3,5,7}
基数(不重复的元素),可以接受误差!
简介
Hyperloglog 技术统计的算法
优点:占用的内存是固定,2^64不同的元素技术,只需要12KB内存
网页的UV(一个人访问一个网站多次,但是还算一个人!)
传统的方式,set保存用户的id,然后就可以统计set中的元素数量作为标准判断!
这个方式如果保存大量的用户id,就会比较麻烦!我们的目得是为了计数,而不是保存用户id;

127.0.0.1:6379> PFADD mykey a b c e f g h j k l #创建第一组元素
(integer) 1
127.0.0.1:6379> PFCOUNT mykey #统计mykey元素的技术数量
(integer) 10
127.0.0.1:6379> PFADD mykey2 dfasguygfffyuerhfugbduygfuyrwguyfg
(integer) 1
127.0.0.1:6379> PFADD mykey2 f ef e ge g e ge g eg eg e g e ge g #创建第二组元素mykey2
(integer) 1
127.0.0.1:6379> PFCOUNT mykey2
(integer) 7
127.0.0.1:6379> pfmerge mykey3 mykey mykey2 #合并两组 mykey mykey2=>mykey3 并集
OK
127.0.0.1:6379> PFCOUNT mykey3 #看并集的数量
(integer) 14
127.0.0.1:6379> 

总结:如果允许容错,那么一定可以使用Hyperloglog!
如果不允许容错,就使用set或者自己的数据类型即可

Bitmaps

位存储
统计用户信息,活跃,不活跃!登录,未登录!打卡 。两个状态的可以使用Bitmaps!
Bitmaps位图,数据结构! 都是操作二进制来进行记录就只有0和1两个状态!
365天 = 365bit 1字节=8bit 46个字节左右

使用bitmap来记录,周一到周日的打开

127.0.0.1:6379> setbit sign 1 0
(integer) 0
127.0.0.1:6379> setbit sign 2 0
(integer) 0
127.0.0.1:6379> setbit sign 3 1
(integer) 0
127.0.0.1:6379> setbit sign 4 1
(integer) 0
127.0.0.1:6379> setbit sign 5 0
(integer) 0
127.0.0.1:6379> setbit sign 6 0
(integer) 0

周一 :0 周二:0 周三:1

查看某一天是否打卡

127.0.0.1:6379> getbit sign 3
(integer) 1
127.0.0.1:6379> getbit sign 2
(integer) 0
127.0.0.1:6379> 

统计操作,统计打卡的天数

127.0.0.1:6379> BITCOUNT sign  #统计这周打卡记录,是否全勤
(integer) 3

标签:127.0,Hyperloglog,0.1,Redis,Bitmaps,6379,integer,sign,mykey2
来源: https://blog.csdn.net/weixin_52272515/article/details/120433073

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有