一、概念
- redis的GEO特性在Redis3.2版本發布,這個功能可以將用戶給定的地理位置信息儲存起來,並對這些信息進行操作。
- GEO常用語LBS(Location Based Service),基於位置的服務。
二、GEO相關命令
- 命令名稱:geoadd
- 語法:geoadd key longitude latitude member [longitude latitude member……]
- 功能:
- 將給定的空間元素(維度、經度、名字)添加到指定的鍵里面。
- 有效的經度介於-180度至180度之間。
- 有效的維度介於-85.05112878度至85.05112878度之間。
- 返回值:
- 新添加到鍵里面的空間元素數量,不包括那些已經存在但是被更新的元素。
- 命令名稱:geopos
- 語法:geopos key member [member……]
- 功能:
- 從鍵里面返回所有給定位置元素的位置(經度和維度)
- 返回值:
- 返回一個數組,數組中的每個項都由兩個元素組成:第一個元素為給定位置元素的經度,第二個元素為給定位置元素的緯度。
- 命令名稱:geodist
- 語法:geodist key member1 member2 [unit]
- 功能:
- 返回兩個給定位置之間的距離。
- 如果兩個位置之間的其中一個不存在,那么返回空值。
- 指定單位的參數unit必須是一下單位的其中一個:(默認m,km,mi,ft)
- 返回值:
- 計算出的距離會以雙精度浮點數的形式被返回。如果給定的位置元素不存在,那么命令返回空值。
- 命令名稱:georadius
- 語法:georadius key longitude latitude radius m|km|gt|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
- 功能:1)以給定的經緯度為中心,返回鍵包含的位置元素當中,與中心的距離不超過給定最大距離的而所有位置元素。
- 選項:
- WITHDIST:在返回位置元素的同時,將位置元素與中心之間的距離也一並返回。
- WITHCOORD:將位置元素的經度和緯度也一並返回。
- WITHHASH:以52位有符號整數的形式,返回位置元素經過原始geohash編碼的有序集合分值。這個選項主要用於底層應用或者調試,實際中的作用並不大。
- ASC:根據中心的位置,按照從近到遠的方式返回位置元素
- DESC:根據中心的位置,按照從遠到近的方式返回位置元素
- 命令名稱:georadiusbymember
- 語法:georadiusbymemeber key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
- 功能:
- 這個命令和georadius命令一樣。
- 不同的是中心點是由給定的位置元素決定的。
- 返回值:
- 一個數組,數組中的每個項表示一個范圍之內的位置元素。
- 命令名稱:geohash
- 語法:geohash key member [member……]
- 功能:
- 返回一個或多個位置元素的geohash表示。
- 返回值:
- 一個數組,數組中的每個項都是一個geohash。命令返回的geohash的位置與用戶給定的位置元素的位置一一對應。