Redis GEORADIUS命令

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日

相关文章

  • RabbitMQ与Redis队列对比

    本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比具体采用什么方式实现,还需要取决于系统的实际需求 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道…

    Redis 2023年4月11日
    00
  • Redis缓存的主要异常及解决方案

    作者:京东物流 陈昌浩 1 导读 Redis 是当前最流行的 NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能。当然在使用过程中,也会出现一些异常情景,导致Redis失去缓存作用。 2 异常类型 异常主要有 缓存雪崩 缓存穿透 缓存击穿。 2.1 缓存雪崩 2.1.1 现象 缓存…

    Redis 2023年4月11日
    00
  • docker redis使用

    启动方式一:docker默认启动redis 1、拉取镜像   docker pull redis:lastest (若不使用版本号,如docker pull redis,默认拉取最新镜像) 2、启动redis server,启动时设置端口,以便外部访问   docker run -it -d –name myredis -p 6379:6379 redis…

    Redis 2023年4月13日
    00
  • redis-cluster 性能调优

    关闭RDB防止fork进程的内存溢出问题 save “” appendonly=yes 防止某个节点挂掉,整个cluster挂掉的问题 cluster-require-full-coverage no 设置最大内存 maxmemory 11453246122 日志 logfile “./redis.log” 防止因为磁盘同步,卡掉住进程的情况出现 no-ap…

    Redis 2023年4月16日
    00
  • 磁盘满时,redis客户端频抛出ConnectionException异常

    1. 原因      当磁盘满时,程序在调用Pool.getResource(),从jedis实例池pool里借用实例时,出现连接异常,没有可用的jedis实例,异常log如下: 2013-11-17 21:59:37,155 ERROR [TransportFrameEncoderService:97] main – <redis.clients.j…

    Redis 2023年4月12日
    00
  • Redis高可用配置(Keepalived)

    主:172.16.0.104 备:172.16.0.105 VIP:172.16.0.107 客户端直接连VIP,当master 104的redis挂掉后,105作为master。当104重启后,104作为105的slave。当105又挂掉之后,104作为master…… 1、安装redis并配置主从同步      安装过程省略     1.1 配置…

    Redis 2023年4月13日
    00
  • 深度剖析Redis九种数据结构实现原理,建议收藏

    Redis 是一个高性能的键值存储系统,支持多种数据结构。 包含五种基本类型 String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),和三种特殊类型 Geo(地理位置)、HyperLogLog(基数统计)、Bitmaps(位图)。 1. Redis介绍 Redis 是一个高性能的键值存储系统,支持多种数据结构。 包含…

    Redis 2023年4月13日
    00
  • Redis SCARD命令

    Redis SCARD命令的作用 Redis SCARD命令用于返回SET集合中元素的数量。 Redis SCARD命令的使用方法 Redis SCARD命令的使用方法如下: SCARD key 其中,key为SET集合名称。 Redis SCARD命令的返回值 Redis SCARD命令返回SET集合中元素的数量。 Redis SCARD命令的实例说明 实…

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