• Redis(10)Geospatial 地理位置


    官方文档 :https://www.redis.net.cn/order/3685.html

    1、GEOADD

    1. # geoadd 添加地理位置
    2. # 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入!
    3. # 有效的经度从-180度到180度。
    4. # 有效的纬度从-85.05112878度到85.05112878度。
    5. # 当坐标位置超出上述指定范围时,该命令将会返回一个错误。
    6. # 127.0.0.1:6379> geoadd china:city 39.90 116.40 beijin (error)
    7. # ERR invalid longitude,latitude pair 39.900000,116.400000
    8. # 参数 key 值()
    9. 127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing
    10. (integer) 1
    11. 127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai
    12. (integer) 1
    13. 127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqi 114.05 22.52 shengzhen
    14. (integer) 2
    15. 127.0.0.1:6379> geoadd china:city 120.16 30.24 hangzhou 108.96 34.26 xian
    16. (integer) 2

    2、GEOPOS

    获得当前定位:一定是一个坐标值!

    1. 127.0.0.1:6379> GEOPOS china:city beijing # 获取指定的城市的经度和纬度!
    2. 1) 1) "116.39999896287918091"
    3. 2) "39.90000009167092543"
    4. 127.0.0.1:6379> GEOPOS china:city beijing chongqi
    5. 1) 1) "116.39999896287918091"
    6. 2) "39.90000009167092543"
    7. 2) 1) "106.49999767541885376"
    8. 2) "29.52999957900659211"

    3、GEODIST

    两坐标之间的距离!

    • 单位:
    • m 表示单位为米。

    • km 表示单位为千米。

    • mi 表示单位为英里。

    • ft 表示单位为英尺

    1. 127.0.0.1:6379> GEODIST china:city beijing shanghai km # 查看上海到北京的直线距离
    2. "1067.3788"
    3. 127.0.0.1:6379> GEODIST china:city beijing chongqi km # 查看重庆到北京的直线距离
    4. "1464.0708"

    4、GEORADIUS

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

    我附近的人? (获得所有附近的人的地址,定位!)通过半径来查询! 获得指定数量的人,200 所有数据应该都录入:china:city ,才会让结果更加请求!

    1. 127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km # 以110,30 这个经纬度为中心,寻 找方圆1000km内的城市
    2. 1) "chongqi"
    3. 2) "xian"
    4. 3) "shengzhen"
    5. 4) "hangzhou"
    6. 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km
    7. 1) "chongqi"
    8. 2) "xian"
    9. 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withdist # 显示到中间距离的位置
    10. 1) 1) "chongqi"
    11. 2) "341.9374"
    12. 2) 1) "xian"
    13. 2) "483.8340"
    14. 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withcoord # 显示他人的定位信息
    15. 1) 1) "chongqi"
    16. 2) 1) "106.49999767541885376"
    17. 2) "29.52999957900659211"
    18. 2) 1) "xian"
    19. 2) 1) "108.96000176668167114"
    20. 2) "34.25999964418929977"
    21. 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withdist withcoord count 1 # 筛选出指定的结果!
    22. 1) 1) "chongqi"
    23. 2) "341.9374"
    24. 3) 1) "106.49999767541885376"
    25. 2) "29.52999957900659211"
    26. 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withdist withcoord count 2
    27. 1) 1) "chongqi"
    28. 2) "341.9374"
    29. 3) 1) "106.49999767541885376"
    30. 2) "29.52999957900659211"
    31. 2) 1) "xian"
    32. 2) "483.8340"
    33. 3) 1) "108.96000176668167114"
    34. 2) "34.25999964418929977"

    5、GEORADIUSBYMEMBER

     找出位于指定元素周围的其他元素!

    1. # 找出位于指定元素周围的其他元素!
    2. 127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km
    3. 1) "beijing"
    4. 2) "xian"
    5. 127.0.0.1:6379> GEORADIUSBYMEMBER china:city shanghai 400 km
    6. 1) "hangzhou"
    7. 2) "shanghai"

    6、GEOHASH

    • 返回一个或多个位置元素的 Geohash 表示
    • 该命令将返回11个字符的Geohash字符串!
    1. # 将二维的经纬度转换为一维的字符串,如果两个字符串越接近,那么则距离越近!
    2. 127.0.0.1:6379> geohash china:city beijing chongqi
    3. 1) "wx4fbxxfke0"
    4. 2) "wm5xzrybty0"

    7、 查看 移除

    GEO 底层的实现原理其实就是 Zset!我们可以使用Zset命令来操作geo!

    1. 127.0.0.1:6379> ZRANGE china:city 0 -1 # 查看地图中全部的元素
    2. 1) "chongqi"
    3. 2) "xian"
    4. 3) "shengzhen"
    5. 4) "hangzhou"
    6. 5) "shanghai"
    7. 6) "beijing"
    8. 127.0.0.1:6379> zrem china:city beijing # 移除指定元素! (integer) 1
    9. 127.0.0.1:6379> ZRANGE china:city 0 -1
    10. 1) "chongqi"
    11. 2) "xian"
    12. 3) "shengzhen"
    13. 4) "hangzhou"
    14. 5) "shanghai"

  • 相关阅读:
    Android中Handler机制和原理是什么?
    合并不同年度收入数据-外连接
    Git 入门使用
    Pytorch可视化:安装 Graphviz
    VLAN实验一 VLAN的简单配置
    论文阅读_大语言模型_Llama2
    如何进行DAP-seq的数据挖掘,筛选验证位点
    麒麟Arm64nacos打包docker镜像说明
    【C语言刷题】指针入门三题|字符串长度、字符串复制、两数交换
    深入理解指针:【探索指针的高级概念和应用二】
  • 原文地址:https://blog.csdn.net/weixin_48560325/article/details/126457098