Redis中geospatial(地理位置)数据类型

geospatial(地理位置)


这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!

geoadd key longitude latitude member :给key中添加元素经纬度和元素名称(经度:longitude,纬度:latitude),规则:地球两极是无法直接添加的!

geopos key member :获取key指定城市(member)的经度和纬度

geodist key member1 member2 [unit]:计算key两个城市直接的距离,单位

###################################
127.0.0.1:6379> geoadd china:city 116.23128 40.22077 beijing
(integer) 1
127.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 120.21201 30.2084 hangzhou
(integer) 2
127.0.0.1:6379> geoadd china:city 108.93425 34.23053 xian
(integer) 1
######################################
127.0.0.1:6379> geopos china:city shanghai
1) 1) "121.48941010236740112"
   2) "31.40526993848380499"
127.0.0.1:6379> geopos china:city beijing
1) 1) "116.23128265142440796"
   2) "40.22076905438526495"
127.0.0.1:6379> geopos china:city xian hangzhou
1) 1) "108.93425256013870239"
   2) "34.23053097599082406"
2) 1) "120.21200805902481079"
   2) "30.20839995425554747"
127.0.0.1:6379> geodist china:city xian shenzhen
"1385584.0998"
127.0.0.1:6379> geodist china:city xian shenzhen km
"1385.5841"
#############################################

我附近的人?(获取所有附近的人的经纬度,定位!)通过半径来查询!

georadius key longitude latitude m|km :key通过以经纬度为中心来查询半径以内的附近的人!,withcoord :经纬度,withdist:距离,count:显示几个数量!

georadiusbymember key member radius m|km withcoord withdist:key通过member找出城市周围在radius半径中的城市数据

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 100 km
(empty list or set)
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 withcoord withdist 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"
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km withdist
1) 1) "beijing"
   2) "0.0000"
2) 1) "xian"
   2) "927.5371"
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km withcoord
1) 1) "beijing"
   2) 1) "116.23128265142440796"
      2) "40.22076905438526495"
2) 1) "xian"
   2) 1) "108.93425256013870239"
      2) "34.23053097599082406"

geohash命令:返回一个或多个位置元素的geohash表示

geo:底层的实现其实就是zset!我们可以使用zset命令来操作geo!

127.0.0.1:6379> zrange china:city 0 -1
1) "chongqing"
2) "xian"
3) "shenzhen"
4) "hangzhou"
5) "shanghai"
6) "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、付费专栏及课程。

余额充值