zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    类和对象代码练习1
    搬迁MSSQL出现的问题
    QQ群空间是我见过最烂的系统
    导出表数据脚本的存储过程 [转自CSDN]
    plesk for Linux 没有默认首页的优先级别设置
    传说中的otag开源是假的。BS!!!!!
    FTP关闭mput上传确认
    刚装的vs2008不能生成silverlight,郁闷中
    怎么查域名反向解析是否成功
    现在的黑客太有才了。。。/不喜欢开防火墙的要小心
  • 原文地址:https://www.cnblogs.com/flower-dance/p/14731111.html
Copyright © 2011-2022 走看看