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


    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
    • .......

    使用场景

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

    作者:彼岸舞

    时间:202155

    内容关于:Redis

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

  • 相关阅读:
    leetcode 1036. 逃离大迷宫(bfs)
    leetcode 1040. 移动石子直到连续 II(滑动窗口)
    leetcode 1039. 多边形三角剖分的最低得分(区间dp)
    Han Xin and His Troops(扩展中国剩余定理 Python版)
    CCPC 2019 网络赛 HDU huntian oy (杜教筛)
    多项式模板
    树链剖分(模板) 洛谷P3384
    2019牛客暑期多校训练营(第九场)
    CF #575 Div3
    计算几何模板集
  • 原文地址:https://www.cnblogs.com/flower-dance/p/14731111.html
Copyright © 2020-2023  润新知