什么是geo
GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串
redis的geo可以做什么
- 查询某个坐标附近的坐标(附近的人功能)
- 查询两点间的距离
redis geo命令
1、GEO ADD
添加一个位置,成功返回1 失败返回0
GEOADD key longitude latitude member [longitude latitude member ...]
2、GEOHASH
返回某个位置的geohash字符串
GEOHASH key member [member ...]
3、GEOPOS
返回某个位置的经纬度
GEOPOS key member [member ...]
4、GEODIST
返回两个位置之间的距离
GEODIST key member1 member2 [m|km|ft|mi]
5、GEORADIUS
返回某个位置附近的数据
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
options:
- WITHDIST 还返回与指定中心的距离
- WITHCOORD 还返回匹配项经纬度坐标
- WITHHASH 还返回hash字符串
- ASC 距离从近到远排序
- DESC 距离从远到近排序
查询123.3533763900 41.7727199600 附近5KM的数据
查询123.3533763900 41.7727199600 附近5KM的数据和距离
6、GEORADIUSBYMEMBER
返回指定成员附近的数据
该命令与GEORADIUS完全相同,唯一的区别在于,它不使用经度和纬度值而是采用已存在于的成员的名
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]