您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis特殊數據類型Geospatial怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Redis特殊數據類型Geospatial怎么使用”文章能幫助大家解決問題。
這是在redis 3.2版本推出的,推算地理位置的信息,兩地之間的距離,周圍方圓的人等等場景都可以用它實現。
將指定的地理空間位置(緯度、經度、名稱)添加到指定的key中。
這里可以借助網上的一些查詢經緯度的工具來獲取數據。
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
這個key里,添加了5個地方的經緯度:上海、蘇州、北京、廣州、廣州海珠區。
從key里返回所有給定位置元素的位置(經度和緯度)。
geopos china:city suzhou shanghai
返回位置的坐標。
返回兩個給定位置之間的距離。
如果兩個位置之間的其中一個不存在, 那么命令返回空值。
指定單位的參數 unit 必須是以下單位的其中一個:
m 表示單位為米(默認)。
km 表示單位為千米。
mi 表示單位為英里。
ft 表示單位為英尺。
geodist china:city suzhou shanghai km
以給定的經緯度為中心, 返回鍵包含的位置元素當中, 與中心的距離不超過給定最大距離的所有位置元素。
georadius china:city 121.49295 31.22337 30 km
我以 上海黃浦區的坐標121.49295 31.22337為中心,尋找30km之內的城市。
再遠點,100km之內,還可以找到suzhou
,加上withdist
顯示出距離。
加上withcoord
可以返回經緯度。
再加上count
,只返回我指定的數量。
georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1
這個命令和 georadius命令一樣, 都可以找出位于指定范圍內的元素。
但是這里不是指定中心點坐標,而是指定以哪個元素為中心點。
georadiusbymember china:city suzhou 100 km withdist
這里以元素suzhou
為中心點,找周五100km內的其他元素。
一個或多個位置元素,用hash表示。
geohash china:city suzhou shanghai
返回11個字符的Geohash字符串,代表當前經緯度的字符串,就是換了個形式,將二維的經緯度轉化成了一個一維的字符串。
如果上圖結構里的2個字符串越接近,則2個位置距離也越近,這些了解即可。
geo的底層原理還是zset,我們可以使用zset命令操作geo,比如移除geo里的城市。
zrem china:city haizhuqu
關于“Redis特殊數據類型Geospatial怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。