redis地理位置

redis 3.2版本中增長的最大功能就是對GEO(地理位置)的支持git

當前業務中地圖方面是調用高德api(雲圖),請求多少會有延遲  而redsigeo能夠實現查找附近的終端以及測量兩點之間的直線距離(有偏差) redis

  • 一、geoadd:增長某個地理位置的座標。
  • 二、geopos:獲取某個地理位置的座標。
  • 三、geodist:獲取兩個地理位置的距離。
  • 四、georadius:根據給定地理位置座標獲取指定範圍內的地理位置集合。
  • 五、georadiusbymember:根據給定地理位置獲取指定範圍內的地理位置集合。
  • 六、geohash:獲取某個地理位置的geohash值。

geoadd

geoadd用來增長地理位置的座標,能夠批量添加地理位置,命令格式爲:算法

GEOADD key longitude latitude member [longitude latitude member ...] 

key標識一個地理位置的集合。longitude latitude member標識了一個地理位置的座標。longitude是地理位置的經度,latitude是地理位置的緯度。member是該地理位置的名稱。GEOADD能夠批量給集合添加一批地理位置。api

geopos

geopos能夠獲取地理位置的座標,能夠批量獲取多個地理位置的座標,命令格式爲:less

GEOPOS key member [member ...] 

geodist

geodist用來獲取兩個地理位置的距離,命令格式爲:spa

GEODIST key member1 member2 [m|km|ft|mi] 

單位能夠指定爲如下四種類型:code

  • m:米,距離單位默認爲米,不傳遞該參數則單位爲米。
  • km:千米。
  • mi:英里。
  • ft:英尺。

georadius

georadius能夠根據給定地理位置座標獲取指定範圍內的地理位置集合。命令格式爲:排序

GEORADIUS key longitude latitude radius [m|km|ft|mi] [WITHCOORD] [WITHDIST] [ASC|DESC] [WITHHASH] [COUNT count] 

longitude latitude標識了地理位置的座標,radius表示範圍距離,距離單位能夠爲m|km|ft|mi,還有一些可選參數:字符串

  • WITHCOORD:傳入WITHCOORD參數,則返回結果會帶上匹配位置的經緯度。
  • WITHDIST:傳入WITHDIST參數,則返回結果會帶上匹配位置與給定地理位置的距離。
  • ASC|DESC:默認結果是未排序的,傳入ASC爲從近到遠排序,傳入DESC爲從遠到近排序。
  • WITHHASH:傳入WITHHASH參數,則返回結果會帶上匹配位置的hash值。
  • COUNT count:傳入COUNT參數,能夠返回指定數量的結果。

georadiusbymember

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值。geohash是將二維的經緯度轉換成字符串hash值的算法,後面會具體介紹geohash原理。能夠批量獲取多個地理位置的geohash值。命令格式爲:

GEOHASH key member [member ...]
相關文章
相關標籤/搜索