Geospatial(地理空间)
简介
Redis3.2 中增加了对GEO类型的支持,GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度,Redis基于该类型提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作
Geospatial命令
# 增加地理位置
127.0.0.1:6379> geoadd china:key 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:key 106.50 29.53 chongqing 114.05 11.52 shenzhen 116.38 39.90 beijing
(integer) 3
注意:1. 两级无法直接添加,一般会下载城市数据,直接通过java程序一次性导入
2. 有效的经度从 -180 到 180 。有效的纬度从 -85.05到 85.05
3. 当坐标位置超过指定范围时,该命令将会返回一个错误命令。已添加的数据,是无法再次往里面添加的
# 获取指定地区的坐标
127.0.0.1:6379> geopos china:key shanghai
1) 1) "121.47000163793563843"
2) "31.22999903975783553"
127.0.0.1:6379> geopos china:key chongqing
1) 1) "106.49999767541885376"
2) "29.52999957900659211"
# 获取两个位置之间的直线距离 (可以自己标志单位)
127.0.0.1:6379> geodist china:key shanghai chongqing #默认是m
"1447673.6920"
127.0.0.1:6379> geodist china:key shanghai chongqing km
"1447.6737"
127.0.0.1:6379> geodist china:key shanghai chongqing m
"1447673.6920"
127.0.0.1:6379> geodist china:key shenzhen shanghai
"2321214.5269"
127.0.0.1:6379> geodist china:key shenzhen shanghai km
"2321.2145"
# 以给定的经纬度为中心,找出某一半径内的元素 (寻找附近的人)
127.0.0.1:6379> georadius china:key 100 30 1000 km
1) "chongqing"

浙公网安备 33010602011771号