6_redis十大关系之地理空间GEO
redis十大关系之地理空间GEO
地球上的地址位置都是使用二维的经纬度来表示,经度范围(-180,180),纬度范围(-90,90),只要我们确定一个点的经纬度就可以获取到它在地球上的位置。在redis中,关于GEO相关操作命令如下:
GEOADD 多个经度、纬度、位置名称添加到指定的key中
需要注意的是,如果出现中文乱码情况,需要进行如下的操作:
redis-cli -a password --raw
GEOPOS 从键里返回所有给定位置元素的位置(经度和纬度)
GEODIST 返回两个指定位置之间的距离
GEORADIUS 以给定的经纬度为中心,返回与中心的距离不超过给定半径的所有位置元素(以半径为中心,查找附近的XXX)
- withdist:在返回元素的同时,将为位置元素与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。
- withcoord:将位置元素的经度和纬度一并返回。
- count:限定返回的记录数。
GEORADIUSBYMEMBER 跟GEORADIUS类似
GEOHASH 返回一个或多个位置元素的GEOHASH
GEOHASH算法生成的base32编码值,3维变2维变1维。最后进行哈希编码。