geospatial地理位置

1、geospatial地理位置

geospatial地理位置

Redis的Geo在Redis3.2版本就退出来了推算地理位置信息,两地之间的距离
可以查询一些测试数据 https://jingweidu.51240.com/

在这里插入图片描述

[root@ysh ~]# redis-cli -p 6379
127.0.0.1:6379> 
#参数 key 纬度,经度 ,名称
127.0.0.1:6379> GEOADD china:city 116.397128 39.916527 beijin
(integer) 1127.0.0.1:6379> geoadd china:city 121.48941 31.40527 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.54041 29.40268 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 113.88308 22.55329 shenzhen
(integer) 1
127.0.0.1:6379> geoadd china:city 108.93425 34.23053 xian
(integer) 1

geopos

127.0.0.1:6379> geopos china:city beijin chongqing xian  # 获取指定城市的经度和纬度
1) 1) "116.39712899923324585"
   2) "39.91652647362980844"
2) 1) "106.54040783643722534"
   2) "29.40268053517299762"
3) 1) "108.93425256013870239"
   2) "34.23053097599082406"
127.0.0.1:6379> 

geodist

  • km 单位千米
  • mi 单位英里
  • 单位英尺
127.0.0.1:6379> geodist china:city beijin shanghai  #查询北京到上海的距离
"1052105.5643"
127.0.0.1:6379> geodist china:city beijin shanghai km  #查询北京到上海的距离 km显示
"1052.1056"

georadius

我附近的人? (获取所有附近的人的地址,定位)通过半径来查询

# 以110 和 30 经纬度为中心 ,寻找1000km内的城市
127.0.0.1:6379> georadius china:city 110 30 1000 km
1) "chongqing"
2) "xian"
3) "shenzhen"
127.0.0.1:6379> georadius china:city 110 30 500 km
1) "chongqing"
2) "xian"
127.0.0.1:6379> georadius china:city 110 30 500 km withdist
1) 1) "chongqing"
   2) "340.7667"
2) 1) "xian"
   2) "481.1278"
127.0.0.1:6379> georadius china:city 110 30 500 km withcoord
1) 1) "chongqing"
   2) 1) "106.54040783643722534"
      2) "29.40268053517299762"
2) 1) "xian"
   2) 1) "108.93425256013870239"
      2) "34.23053097599082406"
# 筛选出指定的结果
127.0.0.1:6379> georadius china:city 110 30 500 km withdist withcoord count 1
1) 1) "chongqing"
   2) "340.7667"
   3) 1) "106.54040783643722534"
      2) "29.40268053517299762" 
# withdist 距离
# withcoord 经度纬度
127.0.0.1:6379> georadius china:city 110 30 500 km withdist withcoord count 2
1) 1) "chongqing"
   2) "340.7667"
   3) 1) "106.54040783643722534"
      2) "29.40268053517299762"
2) 1) "xian"
   2) "481.1278"
   3) 1) "108.93425256013870239"
      2) "34.23053097599082406"

GEORADIUSBYMEMBER

# 找出位于指定元素周围的其他元素
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijin 1000 km
1) "beijin"
2) "xian"
127.0.0.1:6379> 

geohash

#将二维的维度转换为一维的字符串,如果两个字符串越接近,那么距离越近
127.0.0.1:6379> geohash china:city beijin shanghai
1) "wx4g0dtf9e0"
2) "wtw6st1uuq0"
127.0.0.1:6379> 

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

#查看地图中全部的元素(城市)
127.0.0.1:6379> zrange china:city 0 -1
1) "chongqing"
2) "xian"
3) "shenzhen"
4) "shanghai"
5) "beijin"
127.0.0.1:6379> zrem china:city beijin
(integer) 1

127.0.0.1:6379> zrange china:city 0 -1
1) "chongqing"
2) "xian"
3) "shenzhen"
4) "shanghai"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值