GEOADD key longitude latitude member [longitude latitude member …]

可用版本: >= 3.2.0
时间复杂度: 每添加一个元素的复杂度为 O(log(N)) , 其中 N 为键里面包含的位置元素数量。

将给定的空间元素(纬度、经度、名字)添加到指定的键里面。这些数据会以有序集合的形式被储存在键里面,从而使得像 GEORADIUSGEORADIUSBYMEMBER 这样的命令可以在之后通过位置查询取得这些元素。

GEOADD 命令以标准的 x,y 格式接受参数,所以用户必须先输入经度,然后再输入纬度。GEOADD 能够记录的坐标是有限的:非常接近两极的区域是无法被索引的。精确的坐标限制由 EPSG:900913 / EPSG:3785 / OSGEO:41001 等坐标系统定义,具体如下:

  • 有效的经度介于 -180 度至 180 度之间。

  • 有效的纬度介于 -85.05112878 度至 85.05112878 度之间。

当用户尝试输入一个超出范围的经度或者纬度时,GEOADD 命令将返回一个错误。

返回值

新添加到键里面的空间元素数量,不包括那些已经存在但是被更新的元素。

代码示例

  1. redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
  2. (integer) 2
  3.  
  4. redis> GEODIST Sicily Palermo Catania
  5. "166274.15156960039"
  6.  
  7. redis> GEORADIUS Sicily 15 37 100 km
  8. 1) "Catania"
  9.  
  10. redis> GEORADIUS Sicily 15 37 200 km
  11. 1) "Palermo"
  12. 2) "Catania"