6、Redis中Geo地理位置

geospatial地理位置

  1. 朋友的定位,附近的人,打车距离计算?

  2. Redis的Geo在Redis3.2版本就推出了!这个功能可以推算出地理位置的信息,两地之间的距离,方圆几里的人!

  3. 可以查询一些数据!!!

  4. 只有六个命令
    1. geoadd
      • #添加地理位置
        #规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入
        #参数(纬度 经度 名称)
        127.0.0.1:6379> geoadd china:city 116 39 beijing
        (integer) 1
        127.0.0.1:6379> geoadd china:city 121 31 shanghai
        (integer) 1
        127.0.0.1:6379> geoadd china:city 106 29 chongqing
        (integer) 1
        127.0.0.1:6379> geoadd china:city 114 22 shenzhen
        (integer) 1
        127.0.0.1:6379> geoadd china:city 120 30 hangzhou 108 34 xian
        (integer) 2
        
        #错误,超出范围
        127.0.0.1:6379> geoadd china:city 39 116 beijing
        (error) ERR invalid longitude,latitude pair 39.000000,116.000000
        
        #获取地点的位置
        #geopos
        127.0.0.1:6379> geopos china:city beijing
        1) 1) "116.00000113248825073"
           2) "38.99999918434559731"
        127.0.0.1:6379> geopos china:city shanghai chongqing
        1) 1) "120.99999815225601196"
           2) "31.00000097648057817"
        2) 1) "106.00000172853469849"
        
        #获取两点之间的距离
        #geodist
        127.0.0.1:6379> geodist china:city shanghai beijing km
        "999.2077"
        127.0.0.1:6379> geodist china:city beijing chongqing
        "1442782.2644"
        127.0.0.1:6379> geodist china:city beijing chongqing km
        "1442.7823"
        
        #我附近的人?(获得所有附近的地址,定位!)通过半径来查询!
        #georadius
        127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km
        1) "chongqing"
        2) "xian"
        3) "shenzhen"
        4) "hangzhou"
        127.0.0.1:6379> GEORADIUS china:city 110 30 500 km
        1) "chongqing"
        2) "xian"
        #后面可以根据自己的需要添加一些参数
        #withcoord,经纬度
        #withdist 获取距离
        #count 获取数量
        127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withcoord withdist count 1
        1) 1) "chongqing"
           2) "402.8557"
           3) 1) "106.00000172853469849"
              2) "28.99999952347345555"
        
        #通过具体的城市为中心,查找周围的城市
        127.0.0.1:6379> georadiusbymember china:city beijing 400 km 
        1) "beijing"
        
        #Geohash
        #该命令返回11个字符的Geohash字符串!
        #如果两个字符串越接近,则距离越近,很少去使用
        127.0.0.1:6379> geohash china:city beijing chongqing
        1) "wwfmzesx7y0"
        2) "wm5kup6c5p0"
        
        
      • Geo底层实现原理就是Zset命令,我们可以使用zet操作geo

      • 127.0.0.1:6379> zrange china:city 0 -1
        1) "chongqing"
        2) "xian"
        3) "shenzhen"
        4) "hangzhou"
        5) "shanghai"
        6) "beijing"
        127.0.0.1:6379> zrem china:city hangzhou
        (integer) 1
        127.0.0.1:6379> zrange china:city 0 -1
        1) "chongqing"
        2) "xian"
        3) "shenzhen"
        4) "shanghai"
        5) "beijing"
        
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

躺平崽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值