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指的是取的名称

  • 相关阅读:
    ElementUI的Upload上传,配合七牛云储存图片
    Vue : props 使用细节(父组件传递数据给子组件)
    vue弹窗插件实战
    vue实现单选多选反选全选全不选
    Vue.js新手入门指南
    ref 与 $refs 如何关联
    input框只允许输入正整数、正数(包含小数)的解决方法 vue.js实现
    Vue.js 使用 Swiper.js 在 iOS 11 时出现错误
    svn使用规范
    Android 动态设置控件获取焦点
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12906371.html
Copyright © 2011-2022 走看看