首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Redis实现附近的人及打车服务

如打车服务: 每辆网约车都有个编号(如666),网约车需将自己的经度、纬度发给叫车应用 打车时,打车应用会根据用户的经纬度位置,查找用户的附近车辆,并匹配 等把位置相近的用户和车辆匹配后,打车应用就会根据车辆编号...编码值0111、1000两方格就相距较远: 所以,为避免查询不准确,可同时查询给定经纬度所在的方格周围的4或8个方格。...key member1 member2 [unit] 其中 unit 为单位 m|km|ft(英尺)|mi(英里) # 计算两点间的距离,返回距离的单位是米(m) 127.0.0.1:0>GEODIST...字符串越长,表示的范围越精确。 GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度)。...距离的单位和用户给定的范围单位保持一致 WITHCOORD: 将位置元素的经度和维度也一并返回 WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值

1.3K20

geohash之2d 地理空间索引

2d索引的默认范围为经度和纬度,并使用边界值-180(含180)和180(不含)。 重要 2d索引的默认边界允许应用程序插入无效纬度大于90或小于-90的文档。...Haystack Haystack索引为来自同一地理区域的文档创建“桶”,以提高限于该区域的查询的性能。 干草堆索引中的每个桶都包含指定接近给定经度和纬度的所有文档。...使用 bucketSize的参数ensureIndex)(确定接近。甲 bucketSize的5创建组位置的值是5个单位指定的经度和纬度的范围内的索引。 bucketSize还决定索引的粒度。...转换: 到弧度的距离:用与距离测量相同的单位将距离除以球体的半径(例如地球)。 弧度距离:将弧度测量值乘以要转换距离的单位系统中的球体半径(例如地球)。...地球的半径约为3963.192英里或 6378.137公里。

2.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    redis | 九、redis之Geospatial

    指定单位的参数 unit 必须是以下单位的其中一个: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...从key里返回所有给定位置元素的位置(经度和纬度)。...返回值 GEOPOS 命令返回一个数组, 数组中的每个项都由两个元素组成:第一个元素为给定位置元素的经度, 而第二个元素则为给定位置元素的纬度。 当给定的位置元素不存在时, 对应的数组项为空值。...范围可以使用以下其中一个单位: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...以给定的经纬度为中心, 找出某一半径内的元素 Redis GEOADD 命令 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中 Redis GEORADIUSBYMEMBER 命令 找出位于指定范围内的元素

    67420

    【Redis】005-Redis三大特殊数据类型:geospatial地理位置、HyperLogLog基数统计、Bitmaps位图

    单位: m 表示单位为米; km 表示单位为千米; mi 表示单位为英里; ft 表示单位为英尺; 格式: geodist key 名字1 名字2 单位(默认是米) 代码: 127.0.0.1:6379...> geodist china:city beijing chongqing "1464070.8051" 图解: 5、以给定的经度纬度为中心找出某一半径内的元素 格式: georadius key 给定的经度...给定的纬度 距离 单位 # 获取给定位置和半径内的位置信息 georadius key 给定的经度 给定的纬度 距离 单位 withcood # 获取给定位置和半径内的位置信息,并显示他人的定位信息...georadius key 给定的经度 给定的纬度 距离 单位 withdist withcood count num # 可使用withdist withcood count num 设置限制数量...: georadiusbymember key 名字 距离 单位 # 其他可参考——5、以给定的经度纬度为中心找出某一半径内的元素 代码: 127.0.0.1:6379> georadiusbymember

    7410

    Redis实现附近的人

    字符串越长,表示的范围越精确。 ? GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度)。...范围可以使用以下其中一个单位: m 表示单位为米 km 表示单位为千米 mi 表示单位为英里 ft 表示单位为英尺 在给定以下可选项时, 命令会返回额外的信息: WITHDIST: 在返回位置元素的同时...距离的单位和用户给定的范围单位保持一致 WITHCOORD: 将位置元素的经度和维度也一并返回 WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值...GEORADIUS 使用输入的经度和纬度来决定中心点 指定成员的位置被用作查询的中心 ?...工作原理 sorted set 使用一种称为 Geohash 的技术进行填充。经度和纬度的位是交错的,以形成一个独特的 52 位整数.

    73820

    redis常用命令和数据类型

    语法: geoadd key 经度 纬度 地名 经度 纬度 地名 ... ... 2、geopos:获取地理位置的坐标(经度,纬度) geopos key 地名 3、geodist:计算两个位置之间的距离...单位可以是:m、km、mi(英里)、ft(英尺) geodist key 地名1 地名2 单位 4、georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。...georadius 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素 georadius key 经度 纬度 半径值 单位 [WITHCOORD] [WITHDIST...WITHCOORD: 将位置元素的经度和纬度也一并返回。 WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。...georadiusbymember 和 GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 georadiusbymember 的中心点是由给定的位置元素决定的, 而不是使用经度和纬度来决定中心点

    90710

    Redis 到底是怎么实现“附近的人”这个功能的?

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: - WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 - WITHCOORD:将位置对象的经度和维度也一并返回。

    79620

    揭开Redis“附近的人”的神秘面纱

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: - WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 - WITHCOORD:将位置对象的经度和维度也一并返回。

    98120

    Redis 到底是怎么实现“附近的人”这个功能的呢?

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 WITHCOORD:将位置对象的经度和维度也一并返回。

    1.9K20

    Redis 到底是怎么实现“附近的人”这个功能的呢?

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 WITHCOORD:将位置对象的经度和维度也一并返回。

    1.2K10

    看用 Redis 如何实现微信「​附近的人」​功能?

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: - WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 - WITHCOORD:将位置对象的经度和维度也一并返回。

    92850

    Redis 到底是怎么实现“附近的人”这个功能的?

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: - WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 - WITHCOORD:将位置对象的经度和维度也一并返回。

    94230

    Redis 实现「附近的人」

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: - WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 - WITHCOORD:将位置对象的经度和维度也一并返回。

    72720

    Redis 是怎么实现 “附近的人” 的?

    Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象...将给定的位置对象(纬度、经度、名字)添加到指定的key。 其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: - WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 - WITHCOORD:将位置对象的经度和维度也一并返回。

    1.4K10

    用 Redis 查询 “附近的人” !妙啊!

    Redis Geo 模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...将给定的位置对象(纬度、经度、名字)添加到指定的key。其中,key为集合名称,member为该经纬度所对应的对象。...范围单位:m | km | ft | mi --> 米 | 千米 | 英尺 | 英里 额外参数: WITHDIST:在返回位置对象的同时,将位置对象与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 WITHCOORD:将位置对象的经度和维度也一并返回。

    26840
    领券