1 基本命令
- 插入
将指定的地理空间位置(经度、纬度、名称)添加到指定的 key 中,该命令以采用标准格式的参数 x, y,所以经度必须在纬度之前。非常靠近极点的位置是不能被索引的。
有效的经度:-180 度到 180 度
有效的纬度:-85.05112878 度到 85.05112878 度
超出范围则报错。
127.0.0.1:6379> GEOADD guangdong-city 113.27324 23.15792 guangzhou # 插入广州坐标
(integer) 1
127.0.0.1:6379> GEOADD guangdong-city 113.88308 22.55329 shenzhen 113.29673 22.20907 zhuhai # 同时插入多个城市坐标
(integer) 2
以下命令的前提是必须存在点的信息,可以通过程序导入各个点位置。
- 查找
127.0.0.1:6379> ZRANGE guangdong-city 0 -1 # 查看所有点
1) "jiangmen"
2) "zhuhai"
3) "zhongshan"
4) "shenzhen"
5) "guangzhou"
6) "dongguan"
7) "huizhou"
127.0.0.1:6379> GEOPOS guangdong-city guangzhou # 查找指定城市的坐标
1) 1) "113.27324062585830688"
2) "23.1579209662846921"
127.0.0.1:6379> GEOPOS guangdong-city guangzhou shenzhen # 查找多个指定城市坐标
1) 1) "113.27324062585830688"
2) "23.1579209662846921"
2) 1) "113.88307839632034302"
2) "22.55329111565713873"
- 移除
127.0.0.1:6379> ZREM guangdong-city huizhou # 移除指定点
(integer) 1
127.0.0.1:6379> ZRANGE guangdong-city 0 -1
1) "jiangmen"
2) "zhuhai"
3) "zhongshan"
4) "shenzhen"
5) "guangzhou"
6) "dongguan"
- 两地点之间的直线距离
127.0.0.1:6379> GEODIST guangdong-city guangzhou shenzhen # 广州和深圳的直线距离 (默认米)
"91811.7949"
127.0.0.1:6379> GEODIST guangdong-city guangzhou shenzhen km # 广州和深圳的直线距离 (指定单位)
"91.8118"
- 默认 m,表示单位为米
- km 表示单位为千米
- mi 表示单位为英里
- ft 表示单位为英尺
- 以经纬度为中心,获取指定范围内的点信息,如附近的人,通过半径计算。
127.0.0.1:6379> GEORADIUS guangdong-city 113.27324 23.15792 90 km # 获取以广州为中心,半径 90 km 内的城市名称
1) "guangzhou"
2) "dongguan"
3) "jiangmen"
4) "zhongshan"
127.0.0.1:6379> GEORADIUS guangdong-city 113.27324 23.15792 90 km withdist # 获取以广州为中心,半径 90 km 内的城市名称及距离中心点的距离。
1) 1) "guangzhou"
2) "0.0001"
2) 1) "dongguan"
2) "51.2881"
3) 1) "jiangmen"
2) "68.5207"
4) 1) "zhongshan"
2) "72.4447"
127.0.0.1:6379> GEORADIUS guangdong-city 113.27324 23.15792 90 km withcoord # 获取以广州为中心,半径 90 km 内的城市名称及经纬度
1) 1) "guangzhou"
2) 1) "113.27324062585830688"
2) "23.1579209662846921"
2) 1) "dongguan"
2) 1) "113.7517896294593811"
2) "23.02067088494880664"
3) 1) "jiangmen"
2) 1) "113.11103135347366333"
2) "22.56027934189344109"
4) 1) "zhongshan"
2) 1) "113.39259892702102661"
2) "22.51594960353775576"
127.0.0.1:6379> GEORADIUS guangdong-city 113.27324 23.15792 90 km withcoord count 3 # 获取以广州为中心,半径 90 km 内的指定数量的城市名称及经纬度
1) 1) "guangzhou"
2) 1) "113.27324062585830688"
2) "23.1579209662846921"
2) 1) "dongguan"
2) 1) "113.7517896294593811"
2) "23.02067088494880664"
3) 1) "jiangmen"
2) 1) "113.11103135347366333"
2) "22.56027934189344109"
- 以某点名称为中心,获取指定范围内的点信息
127.0.0.1:6379> GEORADIUSBYMEMBER guangdong-city guangzhou 90 km # 和上面的以经纬度命令语法大体一致
1) "guangzhou"
2) "dongguan"
3) "jiangmen"
4) "zhongshan"
127.0.0.1:6379> GEORADIUSBYMEMBER guangdong-city guangzhou 90 km withdist
1) 1) "guangzhou"
2) "0.0000"
2) 1) "dongguan"
2) "51.2880"
3) 1) "jiangmen"
2) "68.5209"
4) 1) "zhongshan"
2) "72.4447"
127.0.0.1:6379> GEORADIUSBYMEMBER guangdong-city guangzhou 90 km withcoord
1) 1) "guangzhou"
2) 1) "113.27324062585830688"
2) "23.1579209662846921"
2) 1) "dongguan"
2) 1) "113.7517896294593811"
2) "23.02067088494880664"
3) 1) "jiangmen"
2) 1) "113.11103135347366333"
2) "22.56027934189344109"
4) 1) "zhongshan"
2) 1) "113.39259892702102661"
2) "22.51594960353775576"
127.0.0.1:6379> GEORADIUSBYMEMBER guangdong-city guangzhou 90 km withcoord count 2
1) 1) "guangzhou"
2) 1) "113.27324062585830688"
2) "23.1579209662846921"
2) 1) "dongguan"
2) 1) "113.7517896294593811"
2) "23.02067088494880664"