使用bitmap优势就是降低资源,比如将两个小于16的值存放到一个字节的高四位和低四位中,这样即节省了存储空间,通信是又节省了带宽。
降低网络带宽
下图第一张是IP头部结构,第二张是TCP头部,都有BIT的用法。
另外bitmap还能用来做数值标记,数值标记可以用来做排序,也可以用在大数据的场景中,比如打卡、签到。
排序
做排序就是将待排序数列中的每个数值对应的bitmap置位,然后从bitmap的低位或者高位开始检查,如有下面一组数,将其从左向右对应到bitmap中
【4、8、3、1、2、6、7】
4------------------>00010000
8------------------>00010001
3------------------>00110001
1------------------>10110001
2------------------>11110001
6------------------>11110101
7------------------>11110111
从左向右查看那个位被置位了,分别是【1、2、3、4、6、7、8】
签到、打卡
数值标记中的数值如果代表一定的意义,比如工号、会员号等,那就不光能用来做排序,还能用来做签到、打卡等功能。
假设某个电商平台有过亿的会员数量,需要保存会员当天的打卡记录。假设会员号用一个四字节整形存储,是否打卡用一个字节存储。那最大需要19G的存储空间。如果用BITMAP实现最大只需要128M就可以。