本篇內(nèi)容主要講解“redis Geo相關(guān)命令詳解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Redis Geo相關(guān)命令詳解”吧!
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、偏關(guān)網(wǎng)絡(luò)推廣、成都小程序開發(fā)、偏關(guān)網(wǎng)絡(luò)營(yíng)銷、偏關(guān)企業(yè)策劃、偏關(guān)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供偏關(guān)建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
最早可用版本:3.2.0
時(shí)間復(fù)雜度:O(log(N)),N是Sorted set元素?cái)?shù)量
用法:GEOADDkey longitude latitude member [longitude latitude member …]
將指定的地理空間位置(緯度、經(jīng)度、名稱)添加到指定key中。這些數(shù)據(jù)將存儲(chǔ)到sorted set,這樣為了方便使用GEORADIUS或GEORADIUSBYMEMBER命令。
該命令采用標(biāo)準(zhǔn)格式參數(shù)x,y,所以經(jīng)度必須在緯度之前。輸入的坐標(biāo)有如下限制:
有效的經(jīng)度從-180度到180度
有效的緯度從-85.05112878度到85.05112878度
當(dāng)坐標(biāo)位置超出上述指定范圍時(shí),該命令返回一個(gè)錯(cuò)誤。
最早可用版本:3.2.0
時(shí)間復(fù)雜度:O(log(N))
用法:GEODIST key member1 member2 [unit]
返回兩個(gè)給定位置之間的距離。
如果兩個(gè)位置之間的其中一個(gè)不存在,那么命令返回空值。
指定單位的參數(shù)unit必須是以下其中一個(gè):
m表示單位為米
km表示單位為千米
mi表示單位為英里
ft表示單位為英尺
如果用戶沒有顯示指定單位參數(shù),默認(rèn)使用米作為單位。
GEODIST命令在計(jì)算距離時(shí)會(huì)假設(shè)地球?yàn)橥昝狼蛐?,極限情況下,這一假設(shè)最大會(huì)造成0.5%的誤差。
最早可用版本:3.2.0
時(shí)間復(fù)雜度:O(log(N))
返回一個(gè)或多個(gè)元素位置的Geohash表示。
用法:GEOHASH key member [member …]
返回一個(gè)或多個(gè)位置元素的Geohash表示。
通常,Redis使用Geohash技術(shù)的變體表示元素的位置,位置使用52位整數(shù)進(jìn)行編碼。由于編碼和解碼過程的初始最大和最小坐標(biāo)不同,所以編碼也不是標(biāo)準(zhǔn)的編碼方式。
該命令返回11個(gè)字符的Geohash字符串,和內(nèi)部的52位表示方法相比沒有精度的損失。返回的Geohash有以下屬性:
它可以移除右邊的字符以縮短長(zhǎng)度,這只會(huì)導(dǎo)致精度的損失,但仍指向同一區(qū)域
它可以在heohash.org網(wǎng)站使用,地址是http://geohash.org/
前綴相似的字符串指向的位置離得很近,但這不代表前綴不同的字符串就離得很遠(yuǎn)
最早可用版本:3.2.0
時(shí)間復(fù)雜度:O(log(N))
用法:GEOPOS key member [member …]
返回指定key中的指定位置信息。
最早可用版本:3.2.0
時(shí)間復(fù)雜度:O(N+log(M)),N是半徑區(qū)域內(nèi)元素?cái)?shù)量,M是指定key中元素?cái)?shù)量
用法:GEORADIUS key longitude latitude radiusm|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH][COUNT count] [ASC|DESC] [STORE key][STOREDIST key]
以給定經(jīng)緯度為中心,返回鍵包含的位置元素與中心距離不超過最大距離的所有位置元素。
命令額外選項(xiàng):
WITHDIST:在返回位置元素的同時(shí),將位置元素與中心的距離也一并返回,單位與用戶給定距離的單位一直
WITHCOORD:將位置元素的經(jīng)度和緯度也一并返回
WITHHASH:以52位有符號(hào)整數(shù)的形式,返回位置元素經(jīng)過原始geohash編碼的有序集合分值。這個(gè)選項(xiàng)主要用于底層應(yīng)用或調(diào)試。
命令默認(rèn)返回結(jié)果未排序,可以指定ASC或DESC按距離排序。
COUNT表示指定返回元素的數(shù)量,如果不指定則返回全部符合的元素。
當(dāng)GEORADIUS和GEORADIUSBYMEMBER命令有了STORE和STOREDIST參數(shù)時(shí),這兩命令被標(biāo)記成了寫命令。在集群中,如果設(shè)置了READONLY,它們將被重定向到主節(jié)點(diǎn),即使它們沒有做寫操作。但為了解決這個(gè)問題,在Redis4.0引入了這兩個(gè)命令的變種,分別是GEORADIUS_RO和GEORADIUSBYMEMBER_RO。
最早可用版本:3.2.0
時(shí)間復(fù)雜度:O(N+log(M)),N是半徑區(qū)域內(nèi)元素?cái)?shù)量,M是指定key中元素?cái)?shù)量
用法:GEORADIUSBYMEMBER key member radiusm|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH][COUNT count] [ASC|DESC] [STORE key][STOREDIST key]
這個(gè)命令和GEORADIUS命令一樣,都可以找出位置范圍內(nèi)的元素,但指定中心點(diǎn)的方式不同,該命令直接指定key中的元素作為中心,而不像GEORADIUS一樣指定經(jīng)緯度。
到此,相信大家對(duì)“Redis Geo相關(guān)命令詳解”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!