注:該文章的知識和舉例來至于狂神b站的redis教學,網站連接配接
官方文檔介紹
将指定的地理空間位置(緯度、經度、名稱)添加到指定的key中。
這些資料将會存儲到sorted set(底層原理實際就是Zset,是以可以用Zset指令操作geo)
這樣的目的是為了友善使用GEORADIUS或者GEORADIUSBYMEMBER指令對資料進行半徑查詢等操作。
該指令以采用标準格式的參數x,y,是以經度必須在緯度之前。這些坐标的限制是可以被編入索引的,區域面積可以很接近極點但是不能索引。具體的限制,由EPSG:900913 / EPSG:3785 / OSGEO:41001 規定如下:
有效的經度從-180度到180度。
有效的緯度從-85.05112878度到85.05112878度。
當坐标位置超出上述指定範圍時,該指令将會傳回一個錯誤。
相關指令:
GEOADD
GEODIST
GEOHASH
GEOPOS
GEORADIUS
GEORADIUSBYMEMBER
GEOADD 添加某城市的經緯度資訊
例:geoadd key 經度 次元 城市名
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnL2IDO3AjNzYTMzETOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
GEOPOS 從key裡傳回所有給定位置元素的位置(經度和緯度)
例:GEOPOS key 城市名
GEODIST 傳回兩個給定位置之間的距離
官方介紹:如果兩個位置之間的其中一個不存在, 那麼指令傳回空值。
指定機關的參數 unit 必須是以下機關的其中一個:
m 表示機關為米。
km 表示機關為千米。
mi 表示機關為英裡。
ft 表示機關為英尺。
如果使用者沒有顯式地指定機關參數, 那麼 GEODIST 預設使用米作為機關。
GEODIST 指令在計算距離時會假設地球為完美的球形, 在極限情況下, 這一假設最大會造成 0.5% 的誤差。
GEORADIUS 指定某一經緯度為中心,傳回某個直徑範圍内的元素
GEORADIUSBYMEMBER
這個指令和 GEORADIUS 指令一樣, 都可以找出位于指定範圍内的元素, 但是 GEORADIUSBYMEMBER 的中心點是由給定的位置元素決定的, 而不是像 GEORADIUS 那樣, 使用輸入的經度和緯度來決定中心點指定成員的位置被用作查詢的中心。
GEOHASH 傳回一個或多個位置元素的 Geohash 表示
該指令将二維的經緯度轉換為一維的字元串,如果兩個地點越近,字元串越相似。