Bitmap的巧用

Bitmap算法又叫做位图算法,缓存数据库Redis中也有对Bitmap算法的支持。

Bitmap不仅方便查询,还可以去掉重复的整数。

使用场景:帮助公司精准定位用户群体,需要开发一个用户画像系统,实现用户信息的标签化。

用户的标签包括用户的社会属性  生活习惯 消费行为等等信息,通过用户标签,我们可以对多样群体进行统计,例如统计用户的男女比例、统计喜欢旅游的用户数量,初步的想法是  二维表存储

但是随着标签增加,数据库的列也会增加的越来越多。不仅如此 当对多个用户群体求并集的时候,需要用distinct来去掉重复的数据,性能实在是差

所以接下来bitmap排上用场。bitmap不仅方便查询,还可以去掉重复的整数

思路 我们为什么一定要让一个用户对应多个标签,而不是一个标签对应多个用户呢?

1.建立用户名和用户ID的映射

2.让每一个标签存储包含此标签的所有用户ID,每一个标签都是一个独立的Bitmap

 

 这样看下来,每一个用户特征都变得一目了然

例如:程序员和00后这两个群体,各自的Bitmap分别如下

 Bitmap对用户做交集和并集的时候也有极大的便利  

原文地址:https://www.cnblogs.com/yyfyl/p/14155039.html