亚洲激情中文字幕_精品日韩一区二区三区_国产黄大片_成人综合网站_精品久久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

夢想加空間!平時喜歡研究各種技術,目前在從事后端開發工作,熱愛生活、熱愛工作。
主站蜘蛛池模板: 精品偷拍久久 | 99re66热这里只有精品8 | 91午夜视频 | 意大利av在线 | 国产免费一区二区三区最新不卡 | 久久久免费观看完整版 | a级黄色片视频 | 97人人草 | 天天舔天天插 | 国产一区在线视频观看 | 在线播放免费视频 | 热99视频 | 免费在线观看国产 | 露脸各种姿势啪啪的清纯美女 | 日日草天天干 | 欧美77| 逼特逼视频在线观看 | 国产亚洲精品久久久久久久久 | 欧美三级一级 | 圆产精品久久久久久久久久久 | 国产亚洲精品精 | 91福利社在线| 国产精品久久久久久久久久 | 伊人手机在线观看 | 日本不卡中文字幕 | 国产成人强伦免费视频网站 | 午夜视频色 | 92看片淫黄大片欧美看国产片 | 欧美性生活视频免费 | 亚洲性在线视频 | 91美女视频在线观看 | 欧美日韩成人一区二区 | 午夜人体 | 欧美一级黄色片免费观看 | 中文字幕在线观看91 | 国产黄色一区二区 | 国产自91精品一区二区 | 亚洲免费看片网站 | 成人不卡在线观看 | 欧美成人久久 | 午夜偷拍视频 |