zoukankan      html  css  js  c++  java
  • Bitmap的巧用

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

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

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

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

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

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

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

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

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

     

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

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

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

  • 相关阅读:
    ES6 promise 常用方法介绍
    js判断元素是否在可视区域里
    alert之后才执行
    jquery总结和注意事项
    java中unicode和中文相互转换
    html href页面跳转获取参数
    myBatis批量添加实例
    mybatis中返回自动生成的id
    遍历map的四种方法
    MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
  • 原文地址:https://www.cnblogs.com/yyfyl/p/14155039.html
Copyright © 2011-2022 走看看