Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-geoadd.html

Redis GEOADD 命令

Redis 地理(Geo) Redis 地理(Geo)


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

命令格式

GEOADD key longitude latitude member [longitude latitude member ...]

可用版本:>=3.2.0

时间复杂度:寻找每个位置元素的复杂度为 O(log(N)),其中 N 为给定键包含的位置元素数量

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

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

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

Redis 里面没有 GEODEL 命令,你可以用 ZREM 命令来删除指定 key 的相应元素,因为 geo 索引结构本质上是一个有序集合。

命令返回值

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

示例

redis> GEOADD Sicily 13.361389 38.115556 Palermo 15.087269 37.502669 Catania
(integer) 2
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"
Redis OBJECT 命令允许从内部查看指定 key 的 Redis 对象信息。它通常用在调试,或者了解相关 key 是否使用特殊编码的 ...
SORT命令返回或保存指定列表、集合、有序集合key中经过排序的元素。 ...
Redis GET 命令返回指定 key 所关联的字符串值。如果指定的 key 不存在时,返回特殊值 nil。此外,如果指定的 key 存储 ...
TYPE 命令返回指定 key 所储存的值的类型。 ...
Redis COMMAND 命令用于返回所有的 Redis 命令的详细信息,并以数组形式展示。 ...