Redis中Geospatial类型数据基本使用
Redis中Geospatial类型数据基本使用
Redis 3.2 中增加了对GEO类型的支持。GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作
下面介绍一些Geospatial类型的常用命令
- 添加地理位置(经度,纬度,名称):geoadd key 经度1 纬度1 名称1 经度2 纬度2 名称2 经度3 纬度3 名称3......,eg:
127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 beijing
(integer) 3
两极无法直接添加,一般会下载城市数据,直接通过 Java 程序一次性导入;已经添加的数据,是无法再次往里面添加的
有效的经度从 -180 度到 180 度,有效的纬度从 -85.05112878 度到 85.05112878 度;当坐标位置超出指定范围时,该命令将会返回一个错误
- 获取指定地区的坐标值:geopos key 名称1 名称2 名称3......,eg:
127.0.0.1:6379> geopos china:city shanghai beijing
1) 1) "121.47000163793563843"
2) "31.22999903975783553"
2) 1) "116.38000041246414185"
2) "39.90000009167092543"
- 获取两个位置之间的直线距离:geodist key 名称1 名称2,eg:
127.0.0.1:6379> geodist china:city shanghai beijing
"1068153.5181"
127.0.0.1:6379> geodist china:city shanghai beijing km
"1068.1535"
# 只能是两个位置之间的距离
127.0.0.1:6379> geodist china:city shanghai beijing chongqing
(error) ERR unsupported unit provided. please use m, km, ft, mi
单位:m 表示单位为米[默认值] km 表示单位为千米 mi 表示单位为英里 ft 表示单位为英尺
- 以给定的经纬度为中心,找出某一半径内的元素:georadius key 经度 纬度 半径 [单位],eg:
127.0.0.1:6379> georadius china:city 110 30 1000 km
1) "chongqing"
2) "shenzhen"
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!