zoukankan      html  css  js  c++  java
  • Redis:特殊数据类型,hyperloglog(基数),bitmap(位存储)

    一,Hyperloglog(基数)

    1.什么是Hyperloglog(基数)

    一个集合中的不重复的元素,

    egA{1,3,5,7,8,7}    B{1,3,5,7,8}

    基数(不重复的元素)= 5,可以接受误差

    2.应用场景

    统计页面访问量:一般一个人或多次访问一个网页,当统计时不能将一个人的多次访问统计成多个访问量,所以Hyperloglog很好的满足了这个要求

    传统的利用实体去setid方式,但着用会持久化大量无用的数据,用redis会很好的解决这个问题,

    优点:内存时固定的 12k

     

     注意:如果允许数据容错的话用Hyperloglog,是不错的选择

       如果不允许容错,那么只能用set或者自定义的数据类型

     

    二,Bitmap位存储

    拓展:bitmaps可以实现布隆过滤器

    使用场景:当一个对应只有两个或几个属性时,推荐使用

    例子:统计用户信息,活跃,不活跃,登录,未登录,打卡

    Bitmaps位图,数据结构,都是操作二进制位来进行记录的,只有0 1两个状态

    比如利用bitmaps实现一个人365天的打卡情况

    365= 365bit   1字节=8bit  46个字节左右

     

     

    bitmapps实现,~指令【setbit {key} {offset} {vlaue} 

     

    缺点:1.只有两个状态,在实际应用场景中,仅适用于状态或属性少的业务, 
       2.约束大,不方便后期扩展

     

     

     

     

  • 相关阅读:
    Unieap3.5-Grid+Form下拉列表高度设置
    Unieap3.5-Grid翻页不提示修改
    Unieap3.5-需要用到window.setTimeout的地方
    Unieap3.5-前台js判断表单必录
    JavaScript空判断
    JavaScript字符串转日期格式
    Unieap3.5-前台js用SQL语句执行数据请求
    Unieap3.5-JS常用方法
    mysql之索引查询1
    mysql之多表查询和pymysql模块
  • 原文地址:https://www.cnblogs.com/CL-King/p/14578746.html
Copyright © 2011-2022 走看看