geospatial集合实例,比如我们点了一份美团外卖,那么我们就需要知道骑手距离我们的距离。我们还需要查看本地的其他外卖店等等,都可以基于geospatial完成。
#geoadd geo集合名 经度 维度 值(设置图的集合,保存形式为 集合名 1.地名 2.经度,维度 )
127.0.0.1:6379[1]> geoadd china:city 116.40 39.90 beijing
(integer) 1
127.0.0.1:6379[1]> geoadd china:city 121.47 31.23 shanghai
(integer) 1
#批量添加操作
127.0.0.1:6379[1]> geoadd china:city 106.50 29.53 chongqing 114.05 22.54 shenzhen
(integer) 2
127.0.0.1:6379[1]> geoadd china:city 120.16 30.24 hangzhou 108.96 34.26 xian
(integer) 2
#geopos geo集合名 地名(根据集合中的地名,获取其经度纬度)
127.0.0.1:6379[1]> geopos china:city beijing
1) 1) "116.39999896287918091"
2) "39.90000009167092543"
127.0.0.1:6379[1]> geopos china:city hangzhou xian
1) 1) "120.1600000262260437"
2) "30.2400003229490224"
2) 1) "108.96000176668167114"
2) "34.25999964418929977"
#geodist geo集合名 地名1 地名2 (单位)(获取地名1与地名2之间的直线距离,默认单位为m,可以修改为km)
127.0.0.1:6379[1]> geodist china:city beijing shanghai
"1067378.7564"
127.0.0.1:6379[1]> geodist china:city beijing shanghai km
"1067.3788"
127.0.0.1:6379[1]> geodist china:city beijing chongqing km
"1464.0708"
#georadius geo集合名 经度 维度 距离 (单位)(以指定经纬度为中心,获取集合中位于该中心指定半径的圆内的所有地名)
127.0.0.1:6379[1]> georadius china:city 110 30 500km
(error) ERR wrong number of arguments for 'georadius' command
127.0.0.1:6379[1]> georadius china:city 110 30 500 km
1) "chongqing"
2) "xian"
127.0.0.1:6379[1]> georadius china:city 110 30 1000 km
1) "chongqing"
2) "xian"
3) "shenzhen"
4) "hangzhou"
#georadius geo集合名 经度 维度 距离 单位 withdist(显示距离) withcoord(显示经纬度) count 数量(指定显示的数量)
127.0.0.1:6379[1]> 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[1]> 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[1]> 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[1]> georadius china:city 110 30 500 km withdist withcoord count 2
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[1]> georadius china:city 100 30 km withdist
(error) ERR need numeric radius
127.0.0.1:6379[1]> georadius china:city 100 30 500 km withdist
(empty array)
127.0.0.1:6379[1]> 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[1]> georadius china:city 110 30 500 km withcoord
1) 1) "chongqing"
2) 1) "106.49999767541885376"
2) "29.52999957900659211"
2) 1) "xian"
2) 1) "108.96000176668167114"
2) "34.25999964418929977"
127.0.0.1:6379[1]> georadius china:city 110 30 500 km
1) "chongqing"
2) "xian"
127.0.0.1:6379[1]> GEORADIUSBYMEMBER china:city beijing 1000 km
1) "beijing"
2) "xian"
127.0.0.1:6379[1]> georadiusbymember china:city hangzhou 400 km
1) "hangzhou"
2) "shanghai"
127.0.0.1:6379[1]> geohash china:city beijing chongqing
1) "wx4fbxxfke0"
2) "wm5xzrybty0"
127.0.0.1:6379[1]> geohash china:city beijing
1) "wx4fbxxfke0"
#查询
127.0.0.1:6379[1]> zrange china:city 0 -1
1) "chongqing"
2) "xian"
3) "shenzhen"
4) "hangzhou"
5) "shanghai"
6) "beijing"
#删除
127.0.0.1:6379[1]> zrem china:city xian
(integer) 1
127.0.0.1:6379[1]> zrange china:city 0 -1
1) "chongqing"
2) "shenzhen"
3) "hangzhou"
4) "shanghai"
5) "beijing"