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

猜你喜欢

转载自www.cnblogs.com/wangcuican/p/12906371.html
今日推荐