Redis-位图法实现简单统计


比如一个网站有1亿个用户, 现在要统计一周内连续登录的用户


方法:
可以用一个字节8个位表示7个人, 首位不算固定为0, 若某人周一登录则置为1, 没登录则为0

127.0.0.1:6379> set mon 01010100
OK
127.0.0.1:6379> set thu 01100101
OK
127.0.0.1:6379> 
......
127.0.0.1:6379> set sun 00010111
OK
127.0.0.1:6379> 

使用 bitop operation 进行and操作得到

127.0.0.1:6379> bitop and mon mon thu sun
(integer) 8
127.0.0.1:6379> get mon
"00000100"
127.0.0.1:6379> 

表明只有第五位用户连续一周登录


位图法非常节省空间


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM