溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

發(fā)布時(shí)間:2022-05-31 13:42:18 來源:億速云 閱讀:183 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Redis特殊數(shù)據(jù)類型Geospatial怎么使用”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Redis特殊數(shù)據(jù)類型Geospatial怎么使用”文章能幫助大家解決問題。

Redis特殊數(shù)據(jù)類型Geospatial地理空間

這是在redis 3.2版本推出的,推算地理位置的信息,兩地之間的距離,周圍方圓的人等等場景都可以用它實(shí)現(xiàn)。

一、geoadd

將指定的地理空間位置(緯度、經(jīng)度、名稱)添加到指定的key中。

這里可以借助網(wǎng)上的一些查詢經(jīng)緯度的工具來獲取數(shù)據(jù)。

geoadd china:city 121.472644 31.231706 shanghai
geoadd china:city 120.619585 31.299379 suzhou
geoadd china:city 116.405285 39.904989 beijing
geoadd china:city 113.280637 23.125178 guangzhou 113.26197 23.10379 haizhuqu

china:city這個(gè)key里,添加了5個(gè)地方的經(jīng)緯度:上海、蘇州、北京、廣州、廣州海珠區(qū)。

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

二、geopos

從key里返回所有給定位置元素的位置(經(jīng)度和緯度)。

geopos china:city suzhou shanghai

返回位置的坐標(biāo)。

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

三、geodist

返回兩個(gè)給定位置之間的距離。

如果兩個(gè)位置之間的其中一個(gè)不存在, 那么命令返回空值。

指定單位的參數(shù) unit 必須是以下單位的其中一個(gè):

  • m 表示單位為米(默認(rèn))。

  • km 表示單位為千米。

  • mi 表示單位為英里。

  • ft 表示單位為英尺。

geodist china:city suzhou shanghai km

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

四、georadius

以給定的經(jīng)緯度為中心, 返回鍵包含的位置元素當(dāng)中, 與中心的距離不超過給定最大距離的所有位置元素。

georadius china:city 121.49295 31.22337 30 km

我以 上海黃浦區(qū)的坐標(biāo)121.49295 31.22337為中心,尋找30km之內(nèi)的城市。

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

再遠(yuǎn)點(diǎn),100km之內(nèi),還可以找到suzhou,加上withdist顯示出距離。

加上withcoord可以返回經(jīng)緯度。

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

再加上count,只返回我指定的數(shù)量。

georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

五、georadiusbymember

這個(gè)命令和 georadius命令一樣, 都可以找出位于指定范圍內(nèi)的元素。

但是這里不是指定中心點(diǎn)坐標(biāo),而是指定以哪個(gè)元素為中心點(diǎn)。

georadiusbymember china:city suzhou 100 km withdist

這里以元素suzhou為中心點(diǎn),找周五100km內(nèi)的其他元素。

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

六、geohash

一個(gè)或多個(gè)位置元素,用hash表示。

geohash china:city suzhou shanghai

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

返回11個(gè)字符的Geohash字符串,代表當(dāng)前經(jīng)緯度的字符串,就是換了個(gè)形式,將二維的經(jīng)緯度轉(zhuǎn)化成了一個(gè)一維的字符串。

如果上圖結(jié)構(gòu)里的2個(gè)字符串越接近,則2個(gè)位置距離也越近,這些了解即可。

geo的底層原理還是zset,我們可以使用zset命令操作geo,比如移除geo里的城市。

zrem china:city haizhuqu

Redis特殊數(shù)據(jù)類型Geospatial怎么使用

關(guān)于“Redis特殊數(shù)據(jù)類型Geospatial怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI