ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2021-05-05 10:36:03  阅读:257  来源: 互联网

标签:ft 地理位置 数据类型 位置 Redis 距离 geospatial key mi


geospatial(地理位置)

添加地理位置

  • geoadd key 经度 纬度 城市名称[多个添加,经纬度城市名称循环]
    • 两级(南极和北极)无法添加,一般通过程序导入
    • 添加北京位置
    • image.png
    • 添加河北和上海位置
    • image.png

获取地理位置

  • geopos key value
    • 获取北京和上海的位置
    • image.png

计算两个位置之间的距离(直线距离[笑哭,谁会查直线距离])

  • geodist key 位置1 位置2 [m|km|ft|mi](单位)
    • m :米,默认单位。
    • km :千米。
    • mi :英里。
    • ft :英尺。
    • 计算河北和北京之间的距离,单位为千米
    • image.png

以指定的经纬度为中心,找出某一半径内的元素

  • GEORADIUS key 维度 经度 半径长度 m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
  • GEORADIUSBYMEMBER key 位置名称 .... 和上面的georadius一样 只不过是把经纬度换成了已存在的地理位置名称
    • m :米,默认单位。
    • km :千米。
    • mi :英里。
    • ft :英尺。
    • WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。
    • WITHCOORD: 将位置元素的经度和维度也一并返回。
    • WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
    • COUNT 限定返回的记录数。
    • ASC: 查找结果根据距离从近到远排序。
    • DESC: 查找结果根据从远到近排序。
    • 搜索经度110 维度30 附近1000km内的位置,或者2000米的位置
    • 可以用于做附近的人,比如附近100m内的玩家XXX,感觉王者是不是这么做的
    • image.png

返回一个或多个地理位置的11位的哈希值(一般用不到)

  • geohash key value[value循环,多个空格拆分]
    • image.png

其他命令,底层是用Zset实现的,可以用zset的删除和查看等命令

  • 查看
    • image.png
  • 删除
    • image.png
  • .......

使用场景

    • 计算两地之间的直线距离
    • 存储地理位置
    • 实现位置的附近人功能

作者:彼岸舞

时间:2021\05\05

内容关于:Redis

本文属于作者原创,未经允许,禁止转发

标签:ft,地理位置,数据类型,位置,Redis,距离,geospatial,key,mi
来源: https://www.cnblogs.com/flower-dance/p/14731111.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有