Redis之GEO存儲(chǔ)地理位置信息的使用
在外賣(mài)軟件中的附近的美食店鋪、外賣(mài)小哥的距離,打車(chē)軟件附近的車(chē)輛,交友軟件中附近的小姐姐。我們都可以利用redis的GEO地理位置計(jì)算得出。
1、Redis 的 Geo 是在 3.2 版本才有的
2、使用 geohash 保存地理位置的坐標(biāo)
3、使用有序集合(zset)保存地理位置的集合
常用API
命令 | 描述 |
---|---|
geoadd | 增加某個(gè)地理位置的坐標(biāo) |
geopos | 獲取某個(gè)地理位置的坐標(biāo) |
geodist | 獲取某個(gè)地理位置的坐標(biāo) |
georadius | 根據(jù)給定地理位置坐標(biāo)獲取指定范圍內(nèi)的地理位置集合 |
georadiusbymember | 根據(jù)給定地理位置獲取指定范圍內(nèi)的地理位置集合 |
geohash | 獲取某個(gè)地理位置的 geohash 值 |
geoadd
API:geo key longitude latitude member [longitude latitude member ..]
功能:增加地理位置信息
演示:
127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing (integer) 1 127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing (integer) 0 127.0.0.1:6379> geoadd cities:locations 117.12 39.08 tianjin (integer) 1 127.0.0.1:6379> geoadd cities:locations 114.29 38.02 shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding (integer) 3
geopos
API:geopos key member [member]
功能:增加地理位置信息
演示:
127.0.0.1:6379> geopos cities:locations beijing 1) 1) "116.28000229597091675" 2) "39.5500007245470826" 127.0.0.1:6379> geopos cities:locations beijing tianjin 1) 1) "116.28000229597091675" 2) "39.5500007245470826" 2) 1) "117.12000042200088501" 2) "39.0800000535766543"
geodist
API:geodsit key member member1 member2
功能:獲取兩個(gè)地理位置的距離
#unit:m(米)、km(千米)、mi(英里)、ft(尺)
演示:
127.0.0.1:6379> geodist cities:locations beijing tianjin km "89.2061"
georadiusbymember
API:georadiusbymember key member raidusm|km|ft|mi [withcoord][withdist][withhash][COUNT count][asc|desc][store key][storedist key]
功能:獲取兩個(gè)地理位置的距離
參數(shù):
- withcoord:返回結(jié)果中包含經(jīng)緯度
- withdist:返回結(jié)果中包含距離中心節(jié)點(diǎn)位置
- withhash:返回結(jié)果中包含geohash
- COUNT count:指定返回結(jié)果的數(shù)量
- asc|desc:返回結(jié)果按照距離中心節(jié)點(diǎn)距離做升序或者倒序排列
- store key:將返回結(jié)果的地理位置信息保存到制定key
- storedist key:將返回結(jié)果距離中心節(jié)點(diǎn)的距離保存到指定鍵
演示:
查詢(xún)距離北京550千米以?xún)?nèi)的所有城市,并按距離升序排列
127.0.0.1:6379> georadiusbymember cities:locations beijing 550 km withdist asc 1) 1) "beijing" 2) "0.0000" 2) 1) "tianjin" 2) "89.2061" 3) 1) "baoding" 2) "143.8646" 4) 1) "tangshan" 2) "149.7479" 5) 1) "shijiazhuang" 2) "242.3263"
geohash
API:geopos key member [member]
功能:獲取某個(gè)地方的哈希值
演示:
127.0.0.1:6379> geohash cities:locations beijing 1) "wx48ypbe2q0"
到此這篇關(guān)于Redis之GEO存儲(chǔ)地理位置信息的使用的文章就介紹到這了,更多相關(guān)Redis GEO存儲(chǔ)地理位置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Redis GEO實(shí)現(xiàn)搜索附近用戶(hù)的項(xiàng)目實(shí)踐
- Redis GEO地理信息定位功能
- Java中如何使用Redis GEO測(cè)算經(jīng)緯度距離
- 詳解Redis中地理位置功能Geospatial的應(yīng)用
- Redis特殊數(shù)據(jù)類(lèi)型Geospatial地理空間
- Redis 的 GeoHash詳解
- Redis中3種特殊的數(shù)據(jù)類(lèi)型(BitMap、Geo和HyperLogLog)
- 使用redis實(shí)現(xiàn)附近的人功能
- Redis 實(shí)現(xiàn)“附近的人”功能
- Redis用GEO實(shí)現(xiàn)附近的人功能
相關(guān)文章
Java實(shí)現(xiàn)每日給女友微信發(fā)送早安信息
這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)每日給女友微信發(fā)送早安等微信信息,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下2022-12-12Java設(shè)計(jì)模式七大原則之開(kāi)閉原則詳解
開(kāi)閉原則,又稱(chēng)為OCP原則,即一個(gè)軟件實(shí)體如類(lèi),模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。本文將詳細(xì)介紹Java設(shè)計(jì)模式七大原則之一的開(kāi)閉原則,需要的可以參考一下2022-02-02SpringSecurity安全管理開(kāi)發(fā)過(guò)程
Spring?是一個(gè)非常流行和成功的?Java?應(yīng)用開(kāi)發(fā)框架,Spring?Security?基于?Spring?框架,提供了一套?Web?應(yīng)用安全性的完整解決方案,這篇文章主要介紹了SpringSecurity安全管理,需要的朋友可以參考下2024-07-07Java中關(guān)于Collections集合工具類(lèi)的詳細(xì)介紹
Java提供了一個(gè)操作Set、List和Map等集合的工具類(lèi):Collections,該工具提供了大量方法對(duì)集合元素進(jìn)行排序、查詢(xún)和修改等操作,還提供了將集合對(duì)象設(shè)置為不可變、對(duì)集合對(duì)象實(shí)現(xiàn)同步控制等方法2021-09-09IntelliJ?IDEA設(shè)置JVM運(yùn)行參數(shù)的圖文介紹
這篇文章主要介紹了IntelliJ?IDEA設(shè)置JVM運(yùn)行參數(shù)的方法,包括配置方式及優(yōu)先級(jí),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04