首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Redis系统学习之三种特殊数据类型(geospatial(地理位置))

    添加地理位置 geoadd key 经度 纬度 城市名称[多个添加,经纬度城市名称循环] 两级(南极和北极)无法添加,一般通过程序导入 添加北京位置 ? 添加河北和上海位置 ?...计算两个位置之间的距离(直线距离[笑哭,谁会查直线距离]) geodist key 位置1 位置2 [m|km|ft|mi](单位) m :米,默认单位。 km :千米。 mi :英里。...和上面的georadius一样 只不过是把经纬度换成了已存在的地理位置名称 m :米,默认单位。 km :千米。 mi :英里。 ft :英尺。...WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 WITHCOORD: 将位置元素的经度和维度也一并返回。...COUNT 限定返回的记录数。 ASC: 查找结果根据距离从近到远排序。 DESC: 查找结果根据从远到近排序。

    1K20

    MySQL按坐标排序和查找指定范围的坐标

    做的项目多了,总会遇到一些需要涉及需要用到地图坐标的。 既然有坐标,那肯定又得涉及位置距离。 例如我们平时使用美团,想搜索附近的美食店,这功能很方便是不是?...6371是地球的半径,单位:公里。如果想以英里搜索,将6371换成3959即可。...39.915599是搜索点中心纬度(例如想搜索北京天安门附近的标记点,则这里就是北京天安门的纬度) 116.402687是搜索点中心经度(例如想搜索北京天安门附近的标记点,则这里就是北京天安门的经度)...distance字段是标记点与搜索点中心的距离,单位:公里(如果地球半径是英里,则这里也是英里) 25是范围,表示搜索出搜索中心点25公里以内的标记点 SELECT `id` , `name`...两个点坐标一样,距离应该是0的。

    2K20

    ⑦【Redis GEO 】Redis常用数据类型:GEO

    返回指定位置名称的经度和纬度 geopos用于从指定key中返回所有指定位置名称的经度和纬度,不存在返回nil geopos key member [member ...] geopos city...以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。...距离的单位和用户给定的范围单位保持一致。 WITHCOORD : 将位置元素的经度和维度也一并返回。...# 键:city # 经度和纬度:121.48941010236740112 31.40526993848380499 # 以经纬度为中心,向外扩张的最大距离:2000 # 单位:km # withcoord...距离的单位和用户给定的范围单位保持一致。 WITHCOORD : 将位置元素的经度和维度也一并返回。

    43410

    redis 学习(15)-- GEO

    含义:增加地理位置信息 longitude :经度 latitude : 纬度 member : 标识信息 2.geopos key member1 [member2...]...unit取值范围 m(米) km(千米) mi(英里) ft(英尺) withcoord:将位置元素的经度与纬度也一并返回 withdist:在返回位置元素的同时,将距离也一并返回。...距离的单位和用户给定的范围单位保持一致 withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。...unit取值范围 m(米) km(千米) mi(英里) ft(英尺) withcoord:将位置元素的经度与纬度也一并返回 withdist:在返回位置元素的同时,将距离也一并返回。...距离的单位和用户给定的范围单位保持一致 withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。

    47450

    微信附近的人,用redis也能实现?(GEO)

    用关系型数据库(mysql)的方式解决问题 我们先把问题简化,假如我附近的人都是不动的,也就是说他们的位置是固定的,按照咱们传统的思路,就是把每个人的经纬度存起来,然后遍历这些经纬度,我们可以通过某种方法获取我和各个经纬度之间的距离...,然后把相对于我距离在 5km 以内的用户展示出来就可以了 具体实现如下 把每个人的经纬度存起来,存储如下 user_id longitude(经度) latitude(纬度) 1 116.39 39.91...遍历数据,和自己对比,获得每个人和自己的距离 把数据库的所有记录都遍历一遍,把每一条记录的经纬度和自己的经纬度做个对比,就能获取到各个记录离自己的距离。...如何根据两个经纬度,获取到这两个点之间的距离我在网上找了个方法,大家可以参考下 /** * 求两个已知经纬度之间的距离,单位为米 * * @param lng1 $ ,lng2 经度 * @param...mi :英里。 ft :英尺。 WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 WITHCOORD: 将位置元素的经度和维度也一并返回。

    66210

    Redis命令geoXXX

    介绍 自Redis 3.2开始,Redis基于geohash和有序集合提供了地理位置相关功能。...Redis Geo模块包含了以下6个命令: GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key; GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度); GEODIST...: 返回两个给定位置之间的距离; GEOHASH: 返回一个或多个位置对象的Geohash表示; GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;...GEORADIUSBYMEMBER: 以给定的位置对象为中心,返回与其距离不超过给定最大距离的所有位置对象。...下列参数很好解释 mypos集合 119 30 经度纬度 120千米范围内的集合元素有哪些,这个方法很有用,可以用来作为附近的人查询 127.0.0.1:6379> georadius mypos 119

    51220

    Redis GEO地理位置

    将给定的空间元素(纬度、经度、名字)添加到指定的键里面。...从键里面返回所有给定位置元素的位置(经度和纬度)。 GEOPOS 命令返回一个数组, 数组中的每个项都由两个元素组成: 第一个元素为给定位置元素的经度, 而第二个元素则为给定位置元素的纬度。...mi 表示单位为英里。 ft 表示单位为英尺。 在给定以下可选项时, 命令会返回额外的信息: WITHDIST : 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。...距离的单位和用户给定的范围单位保持一致。 WITHCOORD : 将位置元素的经度和维度也一并返回。...GEORADIUS 命令一样, 都可以找出位于指定范围内的元素, 但是 GEORADIUSBYMEMBER 的中心点是由给定的位置元素决定的, 而不是像 GEORADIUS 那样, 使用输入的经度和纬度来决定中心点

    1.8K40

    geohash之2d 地理空间索引

    有关查询存储在地理空间索引中的数据的信息,请参阅使用2d索引查询地空间。 存储位置数据 要使用2d地理空间索引,您必须在预定的二维坐标系(例如经度和纬度)上对位置数据建模。...考虑以下两个例子: loc : [ x, y ] loc : { x: 1, y: 2 } 所有文件必须以相同的顺序存储位置数据。如果您将纬度和经度用作坐标系,请始终先存储经度。...2d索引的默认范围为经度和纬度,并使用边界值-180(含180)和180(不含)。 重要 2d索引的默认边界允许应用程序插入无效纬度大于90或小于-90的文档。...Haystack Haystack索引为来自同一地理区域的文档创建“桶”,以提高限于该区域的查询的性能。 干草堆索引中的每个桶都包含指定接近给定经度和纬度的所有文档。...使用 bucketSize的参数ensureIndex)(确定接近。甲 bucketSize的5创建组位置的值是5个单位指定的经度和纬度的范围内的索引。 bucketSize还决定索引的粒度。

    2.3K40

    Redis三种特殊类型

    Redis三种特殊数据类型 geospatial 地理位置 朋友的定位, 附近的人, 打车的距离计算 Redis的Geo在Redis3.2版本就推出了.这个功能可以推算地理位置信息, 两地之间的距离...getadd 添加地理位置 规则:两级无法添加, 我们一般会下载城市数据, 直接通过java程序一次性导入 参数key 值(纬度、经度、名称) 具体的限制,由EPSG:900913 / EPSG:3785...返回两个给定位置之间的距离。...如果两个位置之间的其中一个不存在, 那么命令返回空值。 指定单位的参数 unit 必须是以下单位的其中一个: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。...)通过半径来查询 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。范围可以使用以下其中一个单位: m 表示单位为米。 km 表示单位为千米。

    63420

    Redis实现附近的人

    字符串越长,表示的范围越精确。 ? GEOPOS 从key里返回所有给定位置元素的位置(经度和纬度)。...距离的单位和用户给定的范围单位保持一致 WITHCOORD: 将位置元素的经度和维度也一并返回 WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值...GEORADIUS 使用输入的经度和纬度来决定中心点 指定成员的位置被用作查询的中心 ?...使用GEOADD添加地理位置信息时,用标准格式的参数 x,y, 所以经度必须在纬度之前。这些坐标的限制是可以被编入索引的,区域面积可以很接近极点但是不能索引。...工作原理 sorted set 使用一种称为 Geohash 的技术进行填充。经度和纬度的位是交错的,以形成一个独特的 52 位整数.

    73820

    一文了解geohash原理,实践实战设计思路

    (latitude BETWEEN minlat(最小纬度) AND maxlat(最大纬度)) 查询之后结果集之后,通过经纬度计算距离 ② 第二种方案:直接通过复杂的sql语句计算结果(实习时用过...获取指定key里返回所有指定名称的位置(经度和纬度);时间复杂度O(log(n)),n是排序集中的元素数 注意事项: ① geopos命令返回的是一个数组,每个数组中的都由两个元素组成:第一个是位置的经度...② [m|km|ft|mi]尾部参数: m :米,默认单位 km :千米 mi :英里 ft :英尺 ③ 计算出的距离会以双精度浮点数的形式被返回;位置不存在,则返回...④ withcoord: 将位置元素的经度和维度也一并返回。 ⑤ withhash: 以 52 位有符号整数的形式,返回位置元素经过原始geohash编码的有序集合分值。...,中心点是由给定的位置元素决定的,不是使用经度和纬度来决定中心点。

    4.3K20

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

    一、geospatial地理位置 1、概述 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。...的Geo在Redis3.2版本就推出了; 有效的经度从-180度到180度; 有效的纬度从-85.05112878度到85.05112878度; 当坐标位置超出上述指定范围时,该命令将会返回一个错误;...:6379> geoadd china:city 121.47 31.23 shanghai 106.50 29.53 chongqing # 添加多个 (integer) 2 图解: 3、通过key和城市名获取一个城市的经度和纬度...给定的纬度 距离 单位 # 获取给定位置和半径内的位置信息 georadius key 给定的经度 给定的纬度 距离 单位 withcood # 获取给定位置和半径内的位置信息,并显示他人的定位信息...georadius key 给定的经度 给定的纬度 距离 单位 withdist withcood count num # 可使用withdist withcood count num 设置限制数量

    7410
    领券