一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Redis - redis輕松處理經(jīng)緯度坐標(biāo)點數(shù)據(jù)的實現(xiàn)方法

redis輕松處理經(jīng)緯度坐標(biāo)點數(shù)據(jù)的實現(xiàn)方法

2021-11-21 22:30be5yond Redis

這篇文章主要介紹了redis輕松處理經(jīng)緯度坐標(biāo)點數(shù)據(jù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

Redis 3.2 之后,支持地理坐標(biāo)數(shù)據(jù)的管理。將給定的坐標(biāo)元素(緯度、經(jīng)度、名字)添加到指定的鍵里面。 這些數(shù)據(jù)就會以有序集合的形式被儲, 可以通過GEORADIUS 計算兩個坐標(biāo)點的距離,或者使用GEORADIUS 和 GEORADIUSBYMEMBER查詢某個坐標(biāo)半徑內(nèi)的數(shù)據(jù)。下面對其中常用的命令進(jìn)行一個簡單的介紹。

1. GEOADD

將坐標(biāo)信息添加到指定的鍵里面。

 GEOADD key longitude latitude member [longitude latitude member ...]

longitude:坐標(biāo)點經(jīng)度,有效值[ -180,180 ]

latitude:坐標(biāo)點緯度,有效值[ -85.05112878, 85.05112878 ]

示例:

?
1
2
3
4
5
6
7
127.0.0.1:6379> geoadd parks 116.300892 40.009462 yuanmingyuan
(integer) 1
127.0.0.1:6379>  geoadd parks 116.188797 39.990132 xiangshan 116.255916 40.030233 baiwangshan
(integer) 2
 
127.0.0.1:6379> GEOADD parks 110 89.9 nanji
(error) ERR invalid longitude,latitude pair 110.000000,89.900000

可以看到,GEOADD 支持一次添加一個或多個地點,每個地點需要包含精度維度和名稱,當(dāng)嘗試添加合法經(jīng)緯度外的坐標(biāo)(維度為89.9的nanji) 時, 會報錯。

2. GEOPOS

GEOPOS命令根據(jù)地點的名稱返回對應(yīng)的經(jīng)緯度。集合中不存在時,返回數(shù)據(jù)為空

示例:

?
1
2
3
4
5
6
127.0.0.1:6379> GEOPOS parks xiangshan baiwangshan nanji
1) 1) "116.18879646062850952"
   2) "39.99013224137585354"
2) 1) "116.2559160590171814"
   2) "40.03023406483775659"
3) (nil)

3. GEODIST

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

GEODIST key member1 member2 [unit]

合法的unit值

 

unit: m(缺省值) km mi ft
說明: 千米 英里 英尺

 

示例:

?
1
2
3
4
5
6
127.0.0.1:6379> GEODIST parks xiangshan baiwangshan
"7251.9492"
127.0.0.1:6379> GEODIST parks xiangshan baiwangshan km
"7.2519"
127.0.0.1:6379> GEODIST parks xiangshan nanji km
(nil)

4. GEORADIUS

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

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

經(jīng)緯度和單位參數(shù)與前面命令保持一致。 其他可選參數(shù)說明

  • WITHCOORD: 將坐標(biāo)數(shù)據(jù)的經(jīng)緯度一并返回
  • WITHDIST:將坐標(biāo)數(shù)據(jù)與當(dāng)前坐標(biāo)的距離一并返回
  • WITHHASH:以 52 位有符號整數(shù)的形式, 返回位置元素經(jīng)過原始 geohash 編碼的有序集合分值
  • COUNT:返回指定條數(shù)的數(shù)據(jù)
  • ASC|DESC:根據(jù)中心的位置, 按照從近到遠(yuǎn)或者從遠(yuǎn)到近的方式返回位置元素
  • STORE和STOREDIST:將返回結(jié)果保存至一個有序集合,區(qū)別是STORE保存的是hash值,STOREDIST保存的是距離

示例:

返回額外信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km
1) "xiangshan"
2) "baiwangshan"
3) "yuanmingyuan"
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km WITHCOORD WITHDIST WITHHASH
1) 1) "xiangshan"
   2) "10.9353"
   3) (integer) 4069878528493207
   4) 1) "116.18879646062850952"
      2) "39.99013224137585354"
2) 1) "baiwangshan"
   2) "3.6941"
   3) (integer) 4069880373231506
   4) 1) "116.2559160590171814"
      2) "40.03023406483775659"
3) 1) "yuanmingyuan"
   2) "4.3576"
   3) (integer) 4069880708898691
   4) 1) "116.30089133977890015"
      2) "40.00946202493697257"

指定數(shù)據(jù)條數(shù)和排序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km WITHDIST ASC
1) 1) "baiwangshan"
   2) "3.6941"
2) 1) "yuanmingyuan"
   2) "4.3576"
3) 1) "xiangshan"
   2) "10.9353"
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km WITHDIST DESC
1) 1) "xiangshan"
   2) "10.9353"
2) 1) "yuanmingyuan"
   2) "4.3576"
3) 1) "baiwangshan"
   2) "3.6941"
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km WITHDIST ASC COUNT 2
1) 1) "baiwangshan"
   2) "3.6941"
2) 1) "yuanmingyuan"
   2) "4.3576"

將結(jié)果保存到新的zset, hash值或者距離

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km ASC COUNT 2 STORE store_20km
(integer) 2
127.0.0.1:6379> GEORADIUS parks 116.29248 40.048107 20 km ASC COUNT 2 STOREDIST storedist_20km
(integer) 2
127.0.0.1:6379> ZRANGE store_20km 0 -1 WITHSCORES
1) "baiwangshan"
2) "4069880373231506"
3) "yuanmingyuan"
4) "4069880708898691"
127.0.0.1:6379> ZRANGE storedist_20km 0 -1 WITHSCORES
1) "baiwangshan"
2) "3.6941190849982757"
3) "yuanmingyuan"
4) "4.3576262236174665"

5. GEORADIUSBYMEMBER

這個命令和 GEORADIUS 命令一樣, 都可以找出位于指定范圍內(nèi)的元素, 但是GEORADIUSBYMEMBER的中心點是由給定的位置元素決定的, 而不是像GEORADIUS 那樣, 使用輸入的經(jīng)度和緯度來決定中心點。

示例:

?
1
2
3
GEORADIUSBYMEMBER parks yuanmingyuan 5 km ASC
1) "yuanmingyuan"
2) "baiwangshan"

查詢圓明園5公里內(nèi)的公園

到此這篇關(guān)于redis輕松處理經(jīng)緯度坐標(biāo)點數(shù)據(jù)的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)redis 經(jīng)緯度坐標(biāo)點內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/be5yond/article/details/120825715

延伸 · 閱讀

精彩推薦
  • RedisRedis如何實現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis如何實現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis的主從架構(gòu),能幫助我們實現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實現(xiàn)數(shù)據(jù)庫讀寫分離的相關(guān)資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • RedisRedis的配置、啟動、操作和關(guān)閉方法

    Redis的配置、啟動、操作和關(guān)閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關(guān)閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • Redisredis實現(xiàn)排行榜功能

    redis實現(xiàn)排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實現(xiàn)排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • RedisRedis 事務(wù)知識點相關(guān)總結(jié)

    Redis 事務(wù)知識點相關(guān)總結(jié)

    這篇文章主要介紹了Redis 事務(wù)相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • RedisRedis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)...

    豆子先生5052019-11-27
  • Redis詳解Redis復(fù)制原理

    詳解Redis復(fù)制原理

    與大多數(shù)db一樣,Redis也提供了復(fù)制機制,以滿足故障恢復(fù)和負(fù)載均衡等需求。復(fù)制也是Redis高可用的基礎(chǔ),哨兵和集群都是建立在復(fù)制基礎(chǔ)上實現(xiàn)高可用的...

    李留廣10222021-08-09
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關(guān)于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具...

    一線碼農(nóng)5812019-11-18
主站蜘蛛池模板: 国内精品久久久久久久 | 欧美做受 | 日韩视频免费观看 | 2020年最新国产精品视频免费 | 亚洲精品国产成人中文 | 调教老师肉色丝袜的故事 | 日本视频在线观看 | acg火影忍者熟密姬纲手h | 美日韩一区二区三区 | 国产成年人网站 | 草逼网站视频 | 91麻豆国产福利在线观看 | xxxxx性中国hd| 小小水蜜桃视频高清在线播放 | 久久99精品涩AV毛片观看 | 国产精品免费精品自在线观看 | 国产精品视频久久久久 | 四虎影院永久在线 | 好吊色青青青国产综合在线观看 | 麻豆网站在线免费观看 | 成人影院vs一区二区 | 日本亚欧乱色视频在线观看 | 久久re热在线视频精6 | 国产精品久久毛片完整版 | 欧美a在线| 52av我爱avhaose01| 欧美成人免费一区在线播放 | 99福利视频导航 | 久久毛片网站 | 睡男神的这件小事小说在线阅读 | 久久精品国产久精国产果冻传媒 | aⅴ天堂小视频 | 无码一区国产欧美在线资源 | 校园高h | 521色香蕉网站在线观看 | 四虎免费永久观看 | 午夜福利理论片高清在线 | 精品国产一区二区三区久 | 日韩欧美推理片免费在线播放 | 按摩院已婚妇女中文字幕 | 日本色午夜 |