redis三种特殊数据类型
Geospatial:redis提供的对地理位置操作的命令
geoadd key longitude(经度) latitude(纬度) 名称 #创建一个地理位置
geodist key name1 name2 #计算已保存的两个地理位置之间的距离,默认单位是m,可在最后一个参数设置单位,可选值有[m,km,ft…]
georadius key longitude(经度) latitude(纬度) radius 单位 #根据当前的地理位置,以半径radius的值查找在此radius内的在key中的城市。
总结:该命令底层算法采用x,y建模,注意经纬度的参数顺序;
HyperLogLog:用来做基数统计的算法
pfadd key elements[ ] #创建一个数据集
pfcount key # 统计指定数据集中数据的个数
pfmerge key1 key2 #合并数据集到key1(类似于git中的多分支合并)
总结:因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。
Bitmaps:实现对位的操作,Bitmaps本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的位进行操作
setbit key offset value #设置下标的值
getbit key offset #获取指定下标的值
bitcount key #获取key中value为1的个数
总结:可以把该数据类型当作是一个数组,数组中只能存储0和1,offset即是数组的下标