这家伙有个帮我们封装好的功能,通过内部的zset集合结合算法,提供了如下功能
1.查询两个点之间的直线距离
2.以给定位置为中心,半径不超过给定半径的附近所有位置
3.以某个成员为中心,半径不超过给定半径的附近所有位置
有效的经度是-180度到180度
有效的纬度是-85.05112878度到85.05112878度
GEOADD 添加一个或多个地理位置元素到一个key中
格式:GEOADD key longitude latitude member [longitude latitude member ...]
GEODIST 返回一个key中指定两个位置之间的距离
格式:GEODIST key member1 member2 [unit] unit可以指定长度单位:m,km,ft等 默认为m
GEOHASH 返回一个或多个位置元素的 Geohash 表示,Geohash是一种经纬度散列算法,具体请百度。
格式: GEOHASH key member [member ...]
GEOPOS 返回一个或多个位置的经纬度信息,由于采用了geohash算法,返回的经纬度和添加时的数据可能会有细小误差
格式: GEOPOS key member [member ...]
GEORADIUS 以给定位置为中心,半径不超过给定半径的附近所有位置
格式 GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
GEORADIUSBYMEMBER 和GEORADIUS相似,只是中心点不是指定经纬度,而是指定已添加的某个位置作为中心
格式: GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
它的底层原理是zset,所以删除就可以使用zrem命令
127.0.0.1:6379> geoadd china-city 116 39 beijing (integer) 1 127.0.0.1:6379> geoadd china-city 121 31 shanghai (integer) 1 127.0.0.1:6379> geoadd china-city 117 39 tianjing (integer) 1 127.0.0.1:6379> geoadd china-city 106 29 chongqing (integer) 1 127.0.0.1:6379> geoadd china-city 126 45 haerbing (integer) 1 127.0.0.1:6379> geodist china-city beijing shanghai km "999.2077" 127.0.0.1:6379> geodist china-city tianjing haerbing km "998.2635" 127.0.0.1:6379> geohash china-city shanghai 1) "wtw037ms070" 127.0.0.1:6379> geohash china-city shanghai beijing 1) "wtw037ms070" 2) "wwfmzesx7y0" 127.0.0.1:6379> geopos china-city beijing shanghai 1) 1) "116.00000113248825073" 2) "38.99999918434559731" 2) 1) "120.99999815225601196" 2) "31.00000097648057817" 127.0.0.1:6379> georadius china-city 117 40 500 km 1) "beijing" 2) "tianjing" 127.0.0.1:6379> georadius china-city 117 40 700 km 1) "beijing" 2) "tianjing" 127.0.0.1:6379> georadius china-city 117 40 900 km 1) "beijing" 2) "tianjing" 127.0.0.1:6379> georadius china-city 117 40 1200 km 1) "beijing" 2) "tianjing" 3) "haerbing" 4) "shanghai" 127.0.0.1:6379> georadiusbymember china-city beijing 400 km 1) "beijing" 2) "tianjing" 127.0.0.1:6379> zrange china-city 0 -1 1) "chongqing" 2) "shanghai" 3) "beijing" 4) "tianjing" 5) "haerbing" 127.0.0.1:6379>
原文:https://www.cnblogs.com/johnzhao/p/14594784.html