Redis特殊數(shù)據(jù)類型Geospatial地理空間
Redis特殊數(shù)據(jù)類型Geospatial地理空間
這是在redis 3.2版本推出的,推算地理位置的信息,兩地之間的距離,周圍方圓的人等等場(chǎng)景都可以用它實(shí)現(xiàn)。
一、geoadd
將指定的地理空間位置(緯度、經(jīng)度、名稱)添加到指定的key中。
這里可以借助網(wǎng)上的一些查詢經(jīng)緯度的工具來(lái)獲取數(shù)據(jù)。
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
這個(gè)key里,添加了5個(gè)地方的經(jīng)緯度:上海、蘇州、北京、廣州、廣州海珠區(qū)。
二、geopos
從key里返回所有給定位置元素的位置(經(jīng)度和緯度)。
geopos china:city suzhou shanghai
返回位置的坐標(biāo)。
三、geodist
返回兩個(gè)給定位置之間的距離。
如果兩個(gè)位置之間的其中一個(gè)不存在, 那么命令返回空值。
指定單位的參數(shù) unit 必須是以下單位的其中一個(gè):
- m 表示單位為米(默認(rèn))。
- km 表示單位為千米。
- mi 表示單位為英里。
- ft 表示單位為英尺。
geodist china:city suzhou shanghai km
四、georadius
以給定的經(jīng)緯度為中心, 返回鍵包含的位置元素當(dāng)中, 與中心的距離不超過(guò)給定最大距離的所有位置元素。
georadius china:city 121.49295 31.22337 30 km
我以 上海黃浦區(qū)的坐標(biāo)121.49295 31.22337為中心,尋找30km之內(nèi)的城市。
再遠(yuǎn)點(diǎn),100km之內(nèi),還可以找到suzhou
,加上withdist
顯示出距離。
加上withcoord
可以返回經(jīng)緯度。
再加上count
,只返回我指定的數(shù)量。
georadius china:city 121.49295 31.22337 100 km withdist withcoord count 1
五、georadiusbymember
這個(gè)命令和 georadius命令一樣, 都可以找出位于指定范圍內(nèi)的元素。
但是這里不是指定中心點(diǎn)坐標(biāo),而是指定以哪個(gè)元素為中心點(diǎn)。
georadiusbymember china:city suzhou 100 km withdist
這里以元素suzhou
為中心點(diǎn),找周五100km內(nèi)的其他元素。
六、geohash
一個(gè)或多個(gè)位置元素,用hash表示。
geohash china:city suzhou shanghai
返回11個(gè)字符的Geohash字符串,代表當(dāng)前經(jīng)緯度的字符串,就是換了個(gè)形式,將二維的經(jīng)緯度轉(zhuǎn)化成了一個(gè)一維的字符串。
如果上圖結(jié)構(gòu)里的2個(gè)字符串越接近,則2個(gè)位置距離也越近,這些了解即可。
geo的底層原理還是zset,我們可以使用zset命令操作geo,比如移除geo里的城市。
zrem china:city haizhuqu
更多的操作,可以自己親自試試。
以上就是Redis特殊數(shù)據(jù)類型Geospatial地理空間的詳細(xì)內(nèi)容,更多關(guān)于Redis Geospatial地理空間的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Redis GEO實(shí)現(xiàn)搜索附近用戶的項(xiàng)目實(shí)踐
- Redis GEO地理信息定位功能
- Java中如何使用Redis GEO測(cè)算經(jīng)緯度距離
- 詳解Redis中地理位置功能Geospatial的應(yīng)用
- Redis之GEO存儲(chǔ)地理位置信息的使用
- Redis 的 GeoHash詳解
- Redis中3種特殊的數(shù)據(jù)類型(BitMap、Geo和HyperLogLog)
- 使用redis實(shí)現(xiàn)附近的人功能
- Redis 實(shí)現(xiàn)“附近的人”功能
- Redis用GEO實(shí)現(xiàn)附近的人功能
相關(guān)文章
Redis筆記點(diǎn)贊排行榜的實(shí)現(xiàn)示例
探店筆記類似點(diǎn)評(píng)網(wǎng)站的評(píng)價(jià),本文主要介紹了Redis筆記點(diǎn)贊排行榜的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01淺談redis的過(guò)期時(shí)間設(shè)置和過(guò)期刪除機(jī)制
本文主要介紹了redis的過(guò)期時(shí)間設(shè)置和過(guò)期刪除機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Redis鎖的過(guò)期時(shí)間小于業(yè)務(wù)的執(zhí)行時(shí)間如何續(xù)期
本文主要介紹了Redis鎖的過(guò)期時(shí)間小于業(yè)務(wù)的執(zhí)行時(shí)間如何續(xù)期,Redisson它能給Redis分布式鎖實(shí)現(xiàn)過(guò)期時(shí)間自動(dòng)續(xù)期,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05Redis 通過(guò) RDB 方式進(jìn)行數(shù)據(jù)備份與還原的方法
這篇文章主要介紹了Redis 通過(guò) RDB 方式進(jìn)行數(shù)據(jù)備份與還原,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Redis Value過(guò)大問(wèn)題(鍵值過(guò)大)
這篇文章主要介紹了Redis Value過(guò)大問(wèn)題(鍵值過(guò)大),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12利用Redis實(shí)現(xiàn)訂單30分鐘自動(dòng)取消
本文主要介紹了利用Redis實(shí)現(xiàn)訂單30分鐘自動(dòng)取消,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06