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.约束大,不方便后期扩展

     

     

     

     

  • 相关阅读:
    java-并发解决方案
    linux-常用快捷键
    java-进程
    vim-常用快捷键
    数据库-事务
    spring-事务实现原理
    gdb
    x86 下的 struct 變數 member 擺放位置
    du 查看 資料夾 佔用空間
    ADC 計算時,階數的選擇
  • 原文地址:https://www.cnblogs.com/CL-King/p/14578746.html
Copyright © 2011-2022 走看看