GEOADD:存储坐标
通过使用 GEOADD 命令,用户可以将给定的一个或多个经纬度坐标存储到位置集合中,并为这些坐标设置相应的名字:
GEOADD location_set longitude latitude name [longitude latitude name ...]
GEOADD 命令会返回新添加至位置集合的坐标数量作为返回值。
以下代码展示了如何使用 GEOADD 命令,将广东省的多个城市以及它们的经纬度坐标存储到一个名为 Guangdong-cities 的位置集合中:
redis> GEOADD Guangdong-cities 113.2099647 23.593675 Qingyuan
1 -- 添加清远市的坐标
redis> GEOADD Guangdong-cities 113.2278442 23.1255978 Guangzhou 113.106308 23.0088312
Foshan 113.7943267 22.9761989 Dongguan 114.0538788 22.5551603 Shenzhen
4 -- 添加广州、佛山、东莞和深圳市的坐标
更新已有位置的坐标
在使用 GEOADD 命令向位置集合添加坐标的时候,如果用户给定的位置在集合中已经有了与之相关联的坐标,那么 GEOADD 命令将使用用户给定的新坐标去代替已有的旧坐标。
比如,在执行以下命令为中山市关联一个坐标之后:
redis> GEOADD Guangdong-cities 113 22 Zhongshan
(integer) 1 -- 添加了一个新的位置
如果继续执行以下命令:
redis> GEOADD Guangdong-cities 113.4060288 22.5111574 Zhongshan
(integer) 0 -- 这是一次针对已有位置的更新操作,没有新添加任何位置,所以命令返回0
那么中山市的坐标将从原来的经度 113、纬度 22,更新为经度 113.4060288、纬度 22.5111574。