zoukankan      html  css  js  c++  java
  • Redis入门到精通(十六)——高级数据类型(Bitmaps、HyperLogLog、GEO)

    一、Bitmaps数据类型

    Bitmaps可以理解为string中二进制位中操作的接口

    1.Bitmaps类型的基础操作

    获取指定key对应偏移量上的bit值     getbit  key  offset   #offset指偏移量,相对于第一个元素的位置,也可以理解为索引
    
    设置指定key对应偏移量上的bit值,value只能是1或0
    setbit key offset value

    2.Bitmaps扩展操作

    业务场景——应用于信息状态的统计

    业务分析

    比如"非诚勿扰"这部电影id为5,把这作为偏移量offset为4

    统计每天有多少部电影被点播了,把里面1的个数统计一下就可以了

     统计每周/月/年有多少部电影被点播,统计1的个数(显示每天的做或运算)

    统计执行key中1的数量
    bitcount key [start end]        #[start end]指的是范围,不给就是全统计
    
    对指定key按位进行交、并、非、异或操作,并将结果保存到destkey中
    bitop op destkey key1 [key2...]
    
    #op指的是操作的类型包括:and(交)、or(并)、not(非)、xor(异或)
    #destkey指的是新保存的key名字

    二、HyperLogLog数据类型

    业务场景:用来统计不重复数据数量,应用于独立信息统计

    1.基数

    基数是数据集去重后元素个数,HyperLogLog是用来做基数统计的,运用了LogLog的算法

    2.数据基本操作

    添加数据   pfadd key element   [element...]
    
    统计数据   pfcount key [key...]
    
    合并数据   pfmerge destkey sourcekey [sourcekey...]

    3.相关说明

    三、GEO

    业务场景:计算两者之间的距离,地理位置计算

    1.GEO类型的基本操作

    添加坐标点
    geoadd key longitude latitude member [longitude latitude member ...]     #longitude横坐标,latitude纵坐标,member对应的名称
    
    获取坐标点
    geopos key member [member ...]     #member指的是取得名称
    
    计算坐标点距离
    geodist key member1 member2 [unit]   #unit指的是单位,m(米)、km(千米)

    根据坐标求范围内的数据
    georadius key longitude latitude radius m|km|ft|mi   [withcoord] [withdist] [withhash] [count count]      #radius指的是相距的数字距离
    
    根据点求范围内数据
    georadiusbymember key member radius m|km|ft|mi  [withcoord] [withdist] [withhash] [count count]
    
    获取指定点对应的坐标hash值
    geohash  key member [member...]     #member指的是取的名称

  • 相关阅读:
    1059. C语言竞赛(20)
    1057. 数零壹(20)
    1056. 组合数的和(15)
    1054. 求平均值 (20)
    1052. 卖个萌 (20)
    1053. 住房空置率 (20)
    第五周课后作业02(动手动脑)
    课堂动手动脑
    课后作业
    课堂测试动手动脑
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12906371.html
Copyright © 2011-2022 走看看