数据类型之GEO(位置信息)

image.png
原理:
映射算法,将地球看成一个二维平面,划分成一系列正方形的方格,所有地图坐标都被放置于唯一的方格中,然后进行整数编码(如切蛋糕法),编码越接近的方格距离越近。

下面的demo命令中,杭州经纬度应该为北京的,看的时候自动将杭州带入成北京就可以,不要在意

命令 :
1) geoadd + key + 经度 + 维度 + 成员名 通过经纬度存储地址,支持存储多个
image.png
image.png
2)zrange(withscores)查询成员
image.png
3) geodist + key + member1 + member2 + 距离单位 查询两个地点之间的相对距离 距离单位支持:m(米)、km(千米)、mi(英里)、ft(英尺)
image.png
4)geopos 查询成员经纬度数据
image.png
5)geohash 进行哈希编码 ,得到编码结果(拿到结果去geohash.org网站查询)
image.png
6)georadius 以某个经纬度的位置为中心,划一个指定距离的半径,返回集合中满足条件的地址。这就是“附近的XXX”的一种实现方式。
image.png
使用方式: georadius + key + 中心的经度 + 中心的纬度 + 半径的距离 + 半径的单位;
image.png
可选参数:
withdist 返回距离; withcoord 返回经纬度 ; withhash 返回哈希编码(以52位无符号整数的形式返回项目的原始 geohash 编码的有序集合分数);
image.png

数据类型之Bitmap位(位图)

BitMap就是一个byte数组,元素中每一个bit位用来表示元素在当前节点对应的状态,实际上底层也是通过对字符串的操作来实现,对应开发中boolean类型数据的存取。

原理:
位数组是自动扩展的,可以直接得到字符串的ascii码,是为整存零取,也可以零存零取或零存整取。如果对应的字节是不可打印字符,会显示该字符的十六进制。

命令
1)读取操作
setbit key index 0/1 设置某个位置的值为 0 / 1
image.png
image.png
getbit key index 获取某个位置的值 get + key 零存整取,直接获得二进制字符数组对应的字符串。
image.png
另一种设置方式
image.png
image.png
2) 统计操作
bitcount 查询数组中有多少个1 支持参数 字符的起始位置到终止位置 , 可以计算每个字符的二进制有多少个1
image.png
image.png