GEOADD key longitude latitude member [longitude latitude member …]
可用版本: >= 3.2.0时间复杂度: 每添加一个元素的复杂度为 O(log(N)) , 其中 N 为键里面包含的位置元素数量。
将给定的空间元素(纬度、经度、名字)添加到指定的键里面。这些数据会以有序集合的形式被储存在键里面,从而使得像 GEORADIUS
和 GEORADIUSBYMEMBER
这样的命令可以在之后通过位置查询取得这些元素。
GEOADD
命令以标准的 x,y
格式接受参数,所以用户必须先输入经度,然后再输入纬度。GEOADD
能够记录的坐标是有限的:非常接近两极的区域是无法被索引的。精确的坐标限制由 EPSG:900913 / EPSG:3785 / OSGEO:41001 等坐标系统定义,具体如下:
有效的经度介于 -180 度至 180 度之间。
有效的纬度介于 -85.05112878 度至 85.05112878 度之间。
当用户尝试输入一个超出范围的经度或者纬度时,GEOADD
命令将返回一个错误。
返回值
新添加到键里面的空间元素数量,不包括那些已经存在但是被更新的元素。
代码示例
- redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
- (integer) 2
- redis> GEODIST Sicily Palermo Catania
- "166274.15156960039"
- redis> GEORADIUS Sicily 15 37 100 km
- 1) "Catania"
- redis> GEORADIUS Sicily 15 37 200 km
- 1) "Palermo"
- 2) "Catania"