GEO類型的命令

引言

GEO是redis的高級數據結構。GEO存儲的元素是經度緯度和名字,是用來計算半徑範圍內有哪些之前已經存儲的值。

主要有以下命令

GEOADD
GEODIST
GEOHASH
GEOPOS
GEORADIUS
GEORADIUSBYMEMBER

挨個介紹

GEOADD

把一個或多個經緯度地址添加到key中。
已經存在的元素再次添加會被更新經緯度

geoadd key longitude latitude element [longitude latitude emelent …]

GEODIST

計算已經存儲的兩個值的距離,距離的單位可以是m、km、mi(英里)、ft(英尺)

geodist key member1 member2 [unit]

GEOHASH

獲取一個或多個地址的地理編碼字符串。
地點編碼字符串可以理解爲一個經緯度的唯一編碼。具體見https://en.wikipedia.org/wiki/Geohash

geohash key member[member …]

GEOPOS

獲取一個或多個地址的經緯度

geopos key member[member …]

GEORADIUS

獲取指定經緯度的半徑範圍內的元素,返回的元素內容可以包括距離,地理編碼和經緯度,也可限定個數

georadius longitude latitude radius m|km|mi|ft [WITHDIST] [WITHHASH] [WITHCOORD] [asc |desc] [count count]

GEORADIUSBYMEMBER

求某一元素半徑範圍的count個元素。 與georadius類型

georadiusbymember key member radius [withcoord] [withhash] [withdist] [asc|desc] [count count]

案例

這個特別適合用來計算兩個目標之間的距離。
一個目標範圍內的其他目標
比如微信的附近的人,就可以使用這種數據結構實現。

有一疑惑,添加的元素怎麼刪除呢?
其實geo命令是把元素存儲在zset結構中,可以使用zrem命令刪除元素。當然也可使用所有與zset相關的命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章