亚洲激情中文字幕_精品日韩一区二区三区_国产黄大片_成人综合网站_精品久久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在线视频在线观看 | 亚洲成人在线免费观看 | 国av在线| 99热1| 色av成人天堂桃色av | 国产91丝袜在线熟 | 欧美videofree性欧美另类 | 免费在线观看国产 | 成熟女人特级毛片www免费 | 欧美成人一二三区 | 一级电影在线观看 | 一区二区三区四区免费 | 欧美成人免费电影 | 午夜精品久久久久久久96蜜桃 | 高清国产午夜精品久久久久久 | 久久电影一区二区 | 92看片淫黄大片欧美看国产片 | 欧美性生视频 | 国产好片无限资源 | 99麻豆久久久国产精品免费 | 久久久久性 | 国产成人av一区二区 | 久久国产精品二国产精品 | 日本一区二区免费在线播放 | 成人性生活视频在线播放 | 天堂在线中文资源 | 美女久久久久 | 夜间福利网站 | h色在线观看 | 中日韩免费视频 | 99久久免费看精品 | 国产资源在线观看 | 手机av在线电影 | 欧美成人一级视频 | 日本精品久久久久 | 亚洲国产精品一 | 一本一道久久久a久久久精品91 | 久久一区二区三区av |