Redis GEORADIUS命令

yizhihongxing

Redis的GEORADIUS命令用于通过经纬度查询指定范围内的地理位置信息。下面详细介绍其作用、使用方法及实例说明。

GEORADIUS命令的作用

GEORADIUS命令用于在地理位置信息键空间中查找指定中心点周围指定半径范围内的地理位置数据。它会返回一个或多个地理位置对应的信息,如经度、纬度、名称等。

GEORADIUS命令的使用语法

GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

参数说明:

  • key 键名
  • longitude、latitude 经纬度(中心点)
  • radius 查询范围
  • m|km|ft|mi 查询单位,分别表示米、千米、英尺、英里
  • WITHCOORD 返回结果中包含被查询地理位置的经纬度
  • WITHDIST 返回结果中包含被查询地理位置与中心点之间的距离
  • WITHHASH 返回结果中包含被查询地理位置对应的geohash整数
  • COUNT count 返回结果中仅包含前N个地理位置数据
  • ASC|DESC 返回结果中地理距离的排序方式,默认为升序(ASC)
  • STORE key 将查询结果存入新的有序集合中,命名为key
  • STOREDIST key 将查询结果存入新的有序集合中,命名为key,并将对应地理距离用浮点数记录

GEORADIUS命令的使用方法

下面举例说明如何使用GEORADIUS命令。

示例一:查询指定范围内的地理位置

假设在Redis数据库中,已经存储下了多个地理位置信息,其键名为"cities",其中子键为不同城市名称,存储有其经纬度(如下所示)。

> GEOADD cities 116.405285 39.904989 "Beijing"
> GEOADD cities 121.473701 31.230416 "Shanghai"
> GEOADD cities 114.066112 22.548092 "Hong Kong"
> GEOADD cities 113.264434 23.129162 "Guangzhou"

现在,我们想要查询100公里内距离上海市中心点最近的城市名称及其距离。使用GEORADIUS命令,其查询语句如下:

> GEORADIUS cities 121.473701 31.230416 100 km WITHDIST

运行结果如下:

1) 1) "Shanghai"
   2) "0.0000"
2) 1) "Hangzhou"
   2) "157.9801"

结果显示,查询结果为上海和距离上海最近的杭州(距离157.98公里)。

示例二:存储查询结果到新的有序集合

假设现在我想要查询所有距离上海30公里以内的城市,并且将这些城市名称存储到一个新的有序集合中命名为"cities_within_30km"。使用GEORADIUS命令,其查询语句如下:

> GEORADIUS cities 121.473701 31.230416 30 km STORE cities_within_30km

查询结果为空,这是因为查询结果已经被存储到了"cities_within_30km"的有序集合中。可以用ZRANGE命令查看该集合的内容:

> ZRANGE cities_within_30km 0 -1

运行结果如下:

1) "Shanghai"

结果显示,查询结果为只有上海一个城市(因为距离上海30公里以内的城市只有上海一个),并且已被存储到了"cities_within_30km"的有序集合中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Redis GEORADIUS命令 - Python技术站

(0)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • Spring boot redis自增编号控制 踩坑

    近段期间,公司 接手一个订单号生成服务,规则的话已经由项目经理他们规定好了,主要是后面的四位数代表的关于当前订单号已经执行第几个了。而这里面有一个要求就是支持分布式。为了实现这个东西,刚开始我使用了redis的incr来解决这个问题,因为我们后端开发用的是Spring boot,所以我网上找了一个代码如下: 1 /** 2 * 3 * @param key …

    2023年4月10日
    00
  • Redis源码编译安装及简单配置

    Redis官网 安装操作步骤 # 安装必要工具包 [root@centos7 ~]#yum -y install gcc jemalloc-devel # 解压 [root@centos7 ~]#tar xvf redis-5.0.9.tar.gz # 进入目录 [root@centos7 ~]#cd redis-5.0.9/ # 编译安装 [root@ce…

    Redis 2023年4月13日
    00
  • redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error(转) redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

      windows下安装Redis第一次启动报错: [2368] 21 Apr 02:57:05.611 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error 解决方法:在命令行中运行 redis-cli.exe 127.0.0.1:6379>shutdown not…

    Redis 2023年4月11日
    00
  • PHP5.6版本在Windows上安装redis扩展

    PHP使用redis扩展   一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本       2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.6-ts-vc11-x64.zip和php_igbinary-1.2.1-5.5-ts-vc11-x64.zip 下载地…

    Redis 2023年4月12日
    00
  • 【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104, ‘Connection reset by peer’)

    问题描述 使用Python连接Azure Redis服务,因为在代码中使用的是Djange-redis组件,所以通过如下的配置连接到Azure Redis服务: CACHES = { “default”: { “BACKEND”: “django_redis.cache.RedisCache”, “LOCATION”: “redis://xxxxxxxxx.…

    Redis 2023年4月10日
    00
  • Redis 向集群添加新节点

      1. 启动集群服务(向集群添加新节点,则说明,集群是已知的)。   2. 搭建将要添加到集群的节点     (1)以集群的方式对新添加的节点进行配置:redis.conf.     (2)启动节点实例服务.    3.集群管理 可参考  Redis cluster tutorial 官网指导文档,往往是最新的。 一、启动集群服务:【命令在集群服务器执行】…

    Redis 2023年4月11日
    00
  • Redis CONFIG REWRITE命令

    Redis CONFIG REWRITE命令的作用是将redis.conf配置文件中的配置选项以SET命令的形式保存到redis数据库中,以便在后续Redis重新启动时使用。可以认为,该命令是一种持久化配置文件的方式。 使用该命令的方法如下: 使用CONFIG GET命令获取redis服务器当前的所有配置信息: # CONFIG GET * 修改redis服…

    Redis 2023年3月28日
    00
  • Redis持久化RDB和AOF优缺点是什么,怎么实现的?我应该用哪一个?

      原文http://www.ymq.io/2018/03/24/redis/   Redis是一种高级key-value数据库。数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。 Redis为了保证效…

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部