• 大数据量统计神器bitmap详解


      bitmap就是使用bit位来标识数据,一个bit具有两个值:0和1,正好可以标识true和false,8个bit组成一个byte,当统计大数据量数字集时具有运算快速,节省空间的优势

      应用场景:

      标识统计用户签到:

        一般情况下,用户id都是自增的数字主键,当数百万数千万用户量时,可以结合redis来快速标识统计,redis指令:SETBIT key offset value

        key:可以编辑包含当前日期的内容作为key

        offset:所谓的偏移量,可以设置为id值,即每个bit位对应着一个用户的状态

        value:只能设置0,1,以0和1来标示true和false

        redis查询指令:getbit key offset

      延伸:redis是使用二进制数据进行存储的,当set testbit a时,发出get testbit,输出"a"

        在ascii码表中,a对应的十进制数值是97,二进制数值为01100001

                  当我们依次按照位数获取,getbit testbit 0-7,依次输出0,1,1,0,0,0,0,1

        当我们执行指令,setbit testbit 6 1,  setbit testbit 7 0,

        输入get testbit,输出为"b",b对应的十进制数值是98,二进制数值为01100010

        getbit testbit 0-7,依次输出0,1,1,0,0,0,1,0

        由此可知setbit,getbit本质是在操作key对应value的二进制数据,这也是为何节省空间的原因,因为本质上是我们操作的是一个二进制数字

      bitmap其他应用场景:快速排序,快速查询,去重,统计

  • 相关阅读:
    ubuntu 安装qt5 qtcreator
    ubuntu 更换源
    ubuntu go grpc protobuf 环境的搭建
    xgboost学习
    python 日志打印
    pycharm指定到自己安装的python解释器
    pip安装换成国内的镜像源
    mac蓝牙连接bose耳麦后,只有左声道有声音
    vim粘贴python代码乱码解决办法
    docker某个服务一直起不来的原因
  • 原文地址:https://www.cnblogs.com/xiaofengyuan/p/10057961.html
Copyright © 2020-2023  润新知