redis 3.2版本中增長的最大功能就是對GEO(地理位置)的支持git
當前業務中地圖方面是調用高德api(雲圖),請求多少會有延遲 而redsigeo能夠實現查找附近的終端以及測量兩點之間的直線距離(有偏差) redis
geoadd用來增長地理位置的座標,能夠批量添加地理位置,命令格式爲:算法
GEOADD key longitude latitude member [longitude latitude member ...]
key標識一個地理位置的集合。longitude latitude member
標識了一個地理位置的座標。longitude是地理位置的經度,latitude是地理位置的緯度。member是該地理位置的名稱。GEOADD能夠批量給集合添加一批地理位置。api
geopos能夠獲取地理位置的座標,能夠批量獲取多個地理位置的座標,命令格式爲:less
GEOPOS key member [member ...]
geodist用來獲取兩個地理位置的距離,命令格式爲:spa
GEODIST key member1 member2 [m|km|ft|mi]
單位能夠指定爲如下四種類型:code
georadius能夠根據給定地理位置座標獲取指定範圍內的地理位置集合。命令格式爲:排序
GEORADIUS key longitude latitude radius [m|km|ft|mi] [WITHCOORD] [WITHDIST] [ASC|DESC] [WITHHASH] [COUNT count]
longitude latitude
標識了地理位置的座標,radius表示範圍距離,距離單位能夠爲m|km|ft|mi,還有一些可選參數:字符串
georadiusbymember能夠根據給定地理位置獲取指定範圍內的地理位置集合。georadius命令傳遞的是座標,georadiusbymember傳遞的是地理位置。georadius更爲靈活,能夠獲取任何座標點範圍內的地理位置。可是大多數時候,只是想獲取某個地理位置附近的其餘地理位置,使用georadiusbymember則更爲方便。georadiusbymember命令格式爲(命令可選參數與georadius含義同樣):hash
GEORADIUSBYMEMBER key member radius [m|km|ft|mi] [WITHCOORD] [WITHDIST] [ASC|DESC] [WITHHASH] [COUNT count]
geohash能夠獲取某個地理位置的geohash值。geohash是將二維的經緯度轉換成字符串hash值的算法,後面會具體介紹geohash原理。能夠批量獲取多個地理位置的geohash值。命令格式爲:
GEOHASH key member [member ...]