Redis(11)三大特殊数据类型之地理空间(geospatial)

Geospatital

1.添加地理位置:geoadd
将指定的地理空间位置(经度,纬度、名称)添加到指定的key中。

  • 有效的经度从-180度到180度。
  • 有效的纬度从-85.05112878度到85.05112878度
geoadd chan:city 116.40 39.30 bejing
(integer) 1
127.0.0.1:6379> geoadd chan:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd chan:city 106.50 29.53 chongqing 114.05 22.54 shengzheng
(integer) 2

2.获取指定元素的经纬度:geopos

127.0.0.1:6379> geopos chan:city bejing
1) 1) "116.39999896287918091"
   2) "39.30000117660147652"
127.0.0.1:6379> geopos chan:city shengzheng
1) 1) "114.04999762773513794"
   2) "22.53999903789756587"

3.获取两个城市之间的直线距离:geodist

  • m 表示单位为米。
  • km 表示单位为千米。
  • mi 表示单位为英里。
  • ft 表示单位为英尺
127.0.0.1:6379> geodist chan:city bejing shanghai
"1008342.6601"
127.0.0.1:6379> geodist chan:city bejing shanghai km
"1008.3427"

4 .以给定的经纬度为中心,与中心的距离不超过给定最大距离的所有位置元素:georadius

127.0.0.1:6379> georadius chan:city 110 30 1000 km 
1) "chongqing"
2) "xian"
3) "shengzheng"
4) "hangzhou"
127.0.0.1:6379> georadius chan:city 110 30 500 km 
1) "chongqing"
2) "xian"
127.0.0.1:6379> georadius chan:city 110 30 500 km count 1 #限定一个
1) "chongqing"
127.0.0.1:6379> georadius chan:city 110 30 500 km withcoord withdist count 1 #带上经纬度 ,直线距离 ,限定一个
1) 1) "chongqing"
   2) "341.9374"
   3) 1) "106.49999767541885376"
      2) "29.52999957900659211"

5.以某一个元素为中心,与中心的距离不超过给定最大距离的所有位置元素:georadiusbymember

127.0.0.1:6379> GEORADIUSBYMEMBER chan:city shanghai 400 km
1) "hangzhou"
2) "shanghai"

原理:Geo的底层实现原理就是ztree ,所有可以使用ztree的方式来删除和查询所有

6.查询: zrange

127.0.0.1:6379> zrange chan:city 0 -1
1) "chongqing"
2) "xian"
3) "shengzheng"
4) "hangzhou"
5) "shanghai"
6) "bejing"

7.删除:zrem

127.0.0.1:6379> zrem chan:city xian
(integer) 1
127.0.0.1:6379> zrange chan:city 0 -1
1) "chongqing"
2) "shengzheng"
3) "hangzhou"
4) "shanghai"
5) "bejing"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值