前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis(九):Redis特殊类型之geospatial

Redis(九):Redis特殊类型之geospatial

作者头像
栗筝i
发布2022-12-01 08:44:44
3050
发布2022-12-01 08:44:44
举报
文章被收录于专栏:迁移内容迁移内容

朋友的定位,附近的人,位置共享,打车距离 redis在3.2就已经推出了geospatial!两地之间的距离,方圆几里的人!都可以用它实现 这个需要把你所在地的经纬度输进去,我们可以在http://www.jsons.cn/lngcode/进行查询!

1、geospatial的六个命令

1.1、GEOADD

代码语言:javascript
复制
127.0.0.1:6379> geoadd china:city 39.90 116.40 beijing	//添加地理位置(北京)
(integer) 1
127.0.0.1:6379> geoadd china:city 31.23 1216.47 shanghai
(error) ERR invalid longitude,latitude pair 1216.470000,31.230000
127.0.0.1:6379> geoadd china:city 31.23 121.47 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 22.52 114.05 shenzhen 18.24 109.50 sanya
(integer) 2

参数 key 纬度 经度 名称 ;有效的经度纬度 ps:两极无法添加

1.2、GROPOS

代码语言:javascript
复制
127.0.0.1:6379> GEOPOS china:city beijing	//获取指定的经纬度
1) 1) "116.39999896287918091"
   2) "39.90000009167092543"
127.0.0.1:6379> GEOPOS china:city shanghai
1) 1) "121.47000163793563843"
   2) "31.22999903975783553"

获得当前定位(坐标值)

1.3、DEODIST

代码语言:javascript
复制
127.0.0.1:6379> GEODIST china:city beijing shanghai	//两地(北京上海)的直线距离(默认单位是m)
"1067378.7564"
127.0.0.1:6379> GEODIST china:city beijing shanghai km
"1067.3788"

1.4、GEOEADIUS

代码语言:javascript
复制
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km	//一一个点为中心查找半径范围内的城市
1) "chongqing"
2) "shenzhen"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withdist	//显示距离
1) 1) "chongqing"
   2) "341.9374"
2) 1) "shenzhen"
   2) "924.6408"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord	//显示目标的位置
1) 1) "chongqing"
   2) 1) "106.49999767541885376"
      2) "29.52999957900659211"
2) 1) "shenzhen"
   2) 1) "114.04999762773513794"
      2) "22.5200000879503861"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord count 1	//筛选指定结果
1) 1) "chongqing"
   2) 1) "106.49999767541885376"
      2) "29.52999957900659211"

附近的人,通过半径来查询

1.5、GEORADIUSBYMEMBER

代码语言:javascript
复制
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 2000 km	//找出指定位置周围的
1) "chongqing"
2) "shenzhen"
3) "shanghai"
4) "beijing"

更接近于附近的人的功能!

1.6、GEOHASH

代码语言:javascript
复制
127.0.0.1:6379> GEOHASH china:city beijing chongqing	//把经纬度转换为字符串,字符串越长越精确
1) "wx4fbxxfke0"	//返回当前经纬度的字符串	
2) "wm5xzrybty0"

1.7、查看和删除

代码语言:javascript
复制
127.0.0.1:6379> ZRANGE china:city 0 -1	//查询地图中全部元素
1) "sanya"
2) "chongqing"
3) "shenzhen"
4) "shanghai"
5) "beijing"
127.0.0.1:6379> ZREM china:city chongqing	//删除
(integer) 1
127.0.0.1:6379> ZRANGE china:city 0 -1
1) "sanya"
2) "shenzhen"
3) "shanghai"
4) "beijing"

2、总结

有效的经度从-180度到180度。 有效的纬度从-85.05112878度到85.05112878度。

指定单位的参数 unit 必须是以下单位的其中一个:

m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、geospatial的六个命令
  • 2、总结
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档