亚洲激情中文字幕_精品日韩一区二区三区_国产黄大片_成人综合网站_精品久久av_中文字幕一区二区三区乱码在线

您現在的位置是:首頁 >學無止境 >用Redis實現“附近的人”功能網站首頁學無止境

用Redis實現“附近的人”功能

餓了么物流技術團隊 2019-11-24 22:56:42
簡介針對“附近的人”這一位置服務領域的應用場景,常見的可使用PG、MySQL和MongoDB等多種DB的空間索引進行實現。而Redis另辟蹊徑,結合其有序隊列zset以及geohash編碼,實現了空間搜索功能,且擁有極高的運行效率。

自Redis 3.2開始,Redis基于geohash和有序集合提供了地理位置相關功能。 Redis Geo模塊包含了以下6個命令:

  • GEOADD: 將給定的位置對象(緯度、經度、名字)添加到指定的key;

  • GEOPOS: 從key里面返回所有給定位置對象的位置(經度和緯度);

  • GEODIST: 返回兩個給定位置之間的距離;

  • GEOHASH: 返回一個或多個位置對象的Geohash表示;

  • GEORADIUS: 以給定的經緯度為中心,返回目標集合中與中心的距離不超過給定最大距離的所有位置對象;

  • GEORADIUSBYMEMBER: 以給定的位置對象為中心,返回與其距離不超過給定最大距離的所有位置對象。

其中,組合使用GEOADD和GEORADIUS可實現“附近的人”中“增”和“查”的基本功能。

要實現微信中“附近的人”功能,可直接使用GEORADIUSBYMEMBER命令。

其中“給定的位置對象”即為用戶本人,搜索的對象為其他用戶。

不過本質上,GEORADIUSBYMEMBER = GEOPOS + GEORADIUS,即先查找用戶位置再通過該位置搜索附近滿足位置相互距離條件的其他用戶對象。

GEOADD

GEOADD key 116.410377 39.93491 張三 [lon lat name ...]

將給定的位置對象(緯度、經度、名字)添加到指定的key。

其中,key為集合名稱,name為該經緯度所對應的對象。

在實際運用中,當所需存儲的對象數量過多時,可通過設置多key(如一個省一個key)的方式對對象集合變相做sharding,避免單集合數量過多。

GEORADIUS

GEORADIUS key lon lat radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count] [STORE key] [STORedisT key]

以給定的經緯度為中心,返回目標集合中與中心的距離不超過給定最大距離的所有位置對象。

范圍單位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里
額外參數:

- WITHDIST:在返回位置對象的同時,將位置對象與中心之間的距離也一并返回。距離的單位和用戶給定的范圍單位保持一致。

- WITHCOORD:將位置對象的經度和維度也一并返回。

- WITHHASH:以 52 位有符號整數的形式,返回位置對象經過原始 geohash 編碼的有序集合分值。

- ASC|DESC:從近到遠返回位置對象元素 | 從遠到近返回位置對象元素。

- COUNT count:選取前N個匹配位置對象元素。(不設置則返回所有元素)

- STORE key:將返回結果的地理位置信息保存到指定key。

- STORedisT key:將返回結果離中心點的距離保存到指定key。


作者:萬汨

簡介:餓了么資深開發工程師。iOS,Go,Java 均有涉獵。目前主攻大數據開發。喜歡騎行、爬山。

編輯:陶家龍、孫淑娟

出處:餓了么物流技術團隊

原文鏈接:https://juejin.im/post/5da40462f265da5baf410a11

夢想加空間!平時喜歡研究各種技術,目前在從事后端開發工作,熱愛生活、熱愛工作。
主站蜘蛛池模板: 国产高潮国产高潮久久久91 | 在线无码 | 午夜生活理论片 | 久久成人视屏 | 欧美一级淫片免费播放口 | 久久亚洲精品国产 | 91美女视频在线 | 国产流白浆高潮在线观看 | 国产青草视频在线观看视频 | av电影免费观看 | 亚洲欧美第一视频 | 成人福利在线免费观看 | 多人乱大交xxxxx变态 | 精品一区在线视频 | 国产成年人在线观看 | 国产精品美女一区二区 | 中文字幕在线一 | 性色av一区二区三区在线观看 | 久久国产精品网 | 亚洲午夜免费 | 久久免费视频7 | 黄色成人av在线 | 免费一级欧美大片视频在线 | 久久99精品久久久久久236 | 久在线播放 | 久久免费视频一区二区三区 | 欧美在线国产 | 午夜神马电影网 | 免费一级特黄毛片视频 | 国产成人免费精品 | 成人羞羞在线观看网站 | 羞羞网站视频 | 999精品国产 | 国产小视频在线观看 | 高清国产午夜精品久久久久久 | 69性欧美高清影院 | av懂色| av电影在线网 | 亚洲影视综合网 | 精品一区二区三区中文字幕老牛 | 欧美国产一区二区三区 |