白嫖者vsup主
官方文档:https://www.redis.net.cn/order/3685.html
![](https://img-blog.csdnimg.cn/20200927150040256.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MDY1MDg4,size_16,color_FFFFFF,t_70)
将指定的地理空间位置(纬度、经度、名称)添加到指定的key
中。这些数据将会存储到sorted set
这样的目的是为了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询等操作。
该命令以采用标准格式的参数x,y,所以经度必须在纬度之前。这些坐标的限制是可以被编入索引的,区域面积可以很接近极点但是不能索引。具体的限制,由EPSG:900913 / EPSG:3785 / OSGEO:41001 规定如下:
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing // 加一个城市的精度维度
- (integer) 1
- 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 shengzhen
- (integer) 2
- 127.0.0.1:6379> geoadd china:city 120.16 30.24 hangzhou 108.96 34.26 xian
- (integer) 2
------------------------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> GEOPOS china:city beijing // 获取 精度维度
- 1) 1) "116.39999896287918091"
- 2) "39.90000009167092543"
- 127.0.0.1:6379> GEOPOS china:city chongqing
- 1) 1) "106.49999767541885376"
- 2) "29.52999957900659211"
- 127.0.0.1:6379> GEOPOS china:city chongqing beijing
- 1) 1) "106.49999767541885376"
- 2) "29.52999957900659211"
- 2) 1) "116.39999896287918091"
- 2) "39.90000009167092543"
------------------------------------------------------------------------------------------------------------------------------
- m 表示单位为米。
- km 表示单位为千米。
- mi 表示单位为英里。
- ft 表示单位为英尺。
- 127.0.0.1:6379> GEODIST china:city beijing chongqing // 获取 指向距离 默认的单位是 km
- "1464070.8051"
- 127.0.0.1:6379> GEODIST china:city beijing chongqing km
- "1464.0708"
- 127.0.0.1:6379> GEODIST china:city beijing chongqing m
- "1464070.8051"
------------------------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km // 显示 以 110 30 精度维度为中心 半径在1000km内的城市
- 1) "chongqing"
- 2) "xian"
- 3) "shengzhen"
- 4) "hangzhou"
- 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km
- 1) "chongqing"
- 2) "xian"
- 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withdist // 加上城市距离这个中心的 距离
- 1) 1) "chongqing"
- 2) "341.9374"
- 2) 1) "xian"
- 2) "483.8340"
- 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withdist withcoord // 在加上这个城市的精度维度
- 1) 1) "chongqing"
- 2) "341.9374"
- 3) 1) "106.49999767541885376"
- 2) "29.52999957900659211"
- 2) 1) "xian"
- 2) "483.8340"
- 3) 1) "108.96000176668167114"
- 2) "34.25999964418929977"
- 127.0.0.1:6379> GEORADIUS china:city 110 30 500 km withdist withcoord count 1 // 指定显示的个数
- 1) 1) "chongqing"
- 2) "341.9374"
- 3) 1) "106.49999767541885376"
- 2) "29.52999957900659211
------------------------------------------------------------------------------------------------------------------------------
与上面类似的,找出位于指定元素的其他元素
- 127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km // 加上了自己
- 1) "beijing"
- 2) "xian"
- 127.0.0.1:6379> GEORADIUSBYMEMBER china:city shanghai 400 km
- 1) "hangzhou"
- 2) "shanghai"
------------------------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> GEOHASH china:city beijing chongqing
- 1) "wx4fbxxfke0"
- 2) "v0gs3y0zh70"
------------------------------------------------------------------------------------------------------------------------------
- 127.0.0.1:6379> ZRANGE china:city 0 -1 # 查看地图中全部的元素
- 1) "chongqi"
- 2) "xian"
- 3) "shengzhen"
- 4) "hangzhou"
- 5) "shanghai"
- 6) "beijing"
- 127.0.0.1:6379> zrem china:city beijing # 移除指定元素!
- (integer) 1
- 127.0.0.1:6379> ZRANGE china:city 0 -1
- 1) "chongqi"
- 2) "xian"
- 3) "shengzhen"
- 4) "hangzhou"
- 5) "shanghai"