溫馨提示×

溫馨提示×

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

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

Redis Geo相關命令詳解

發布時間:2021-09-10 15:32:37 來源:億速云 閱讀:189 作者:chen 欄目:大數據

本篇內容主要講解“Redis Geo相關命令詳解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Redis Geo相關命令詳解”吧!


 
GEOADD

最早可用版本:3.2.0

時間復雜度:O(log(N)),N是Sorted set元素數量

用法:GEOADDkey longitude latitude member [longitude latitude member …]

將指定的地理空間位置(緯度、經度、名稱)添加到指定key中。這些數據將存儲到sorted set,這樣為了方便使用GEORADIUS或GEORADIUSBYMEMBER命令。

該命令采用標準格式參數x,y,所以經度必須在緯度之前。輸入的坐標有如下限制:

  • 有效的經度從-180度到180度

  • 有效的緯度從-85.05112878度到85.05112878度

當坐標位置超出上述指定范圍時,該命令返回一個錯誤。

 
GEODIST

最早可用版本:3.2.0

時間復雜度:O(log(N))

用法:GEODIST key member1 member2 [unit]

返回兩個給定位置之間的距離。

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

指定單位的參數unit必須是以下其中一個:

  • m表示單位為米

  • km表示單位為千米

  • mi表示單位為英里

  • ft表示單位為英尺

如果用戶沒有顯示指定單位參數,默認使用米作為單位。

GEODIST命令在計算距離時會假設地球為完美球形,極限情況下,這一假設最大會造成0.5%的誤差。

 
GEOHASH

最早可用版本:3.2.0

時間復雜度:O(log(N))

返回一個或多個元素位置的Geohash表示。

用法:GEOHASH key member [member …]

返回一個或多個位置元素的Geohash表示。

通常,Redis使用Geohash技術的變體表示元素的位置,位置使用52位整數進行編碼。由于編碼和解碼過程的初始最大和最小坐標不同,所以編碼也不是標準的編碼方式。

該命令返回11個字符的Geohash字符串,和內部的52位表示方法相比沒有精度的損失。返回的Geohash有以下屬性:

  1. 它可以移除右邊的字符以縮短長度,這只會導致精度的損失,但仍指向同一區域

  2. 它可以在heohash.org網站使用,地址是http://geohash.org/

  3. 前綴相似的字符串指向的位置離得很近,但這不代表前綴不同的字符串就離得很遠

 
GEOPOS

最早可用版本:3.2.0

時間復雜度:O(log(N))

用法:GEOPOS key member [member …]

返回指定key中的指定位置信息。

 
GEORADIUS

最早可用版本:3.2.0

時間復雜度:O(N+log(M)),N是半徑區域內元素數量,M是指定key中元素數量

用法:GEORADIUS key longitude latitude radiusm|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH][COUNT count] [ASC|DESC] [STORE key][STOREDIST key]

以給定經緯度為中心,返回鍵包含的位置元素與中心距離不超過最大距離的所有位置元素。

命令額外選項:

  • WITHDIST:在返回位置元素的同時,將位置元素與中心的距離也一并返回,單位與用戶給定距離的單位一直

  • WITHCOORD:將位置元素的經度和緯度也一并返回

  • WITHHASH:以52位有符號整數的形式,返回位置元素經過原始geohash編碼的有序集合分值。這個選項主要用于底層應用或調試。

命令默認返回結果未排序,可以指定ASC或DESC按距離排序。

COUNT表示指定返回元素的數量,如果不指定則返回全部符合的元素。

當GEORADIUS和GEORADIUSBYMEMBER命令有了STORE和STOREDIST參數時,這兩命令被標記成了寫命令。在集群中,如果設置了READONLY,它們將被重定向到主節點,即使它們沒有做寫操作。但為了解決這個問題,在Redis4.0引入了這兩個命令的變種,分別是GEORADIUS_RO和GEORADIUSBYMEMBER_RO。

 
GEORADIUSBYMEMBER

最早可用版本:3.2.0

時間復雜度:O(N+log(M)),N是半徑區域內元素數量,M是指定key中元素數量

用法:GEORADIUSBYMEMBER key member radiusm|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH][COUNT count] [ASC|DESC] [STORE key][STOREDIST key]

這個命令和GEORADIUS命令一樣,都可以找出位置范圍內的元素,但指定中心點的方式不同,該命令直接指定key中的元素作為中心,而不像GEORADIUS一樣指定經緯度。

到此,相信大家對“Redis Geo相關命令詳解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女