广告
返回顶部
首页 > 资讯 > 数据库 >Redis特殊数据类型之Geospatial怎么应用
  • 317
分享到

Redis特殊数据类型之Geospatial怎么应用

2024-04-02 19:04:59 317人浏览 安东尼
摘要

今天小编给大家分享一下Redis特殊数据类型之Geospatial怎么应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收

今天小编给大家分享一下Redis特殊数据类型之Geospatial怎么应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

概述简介

Redis Geospatial 是 Redis 3.2 版本新增的数据类型,主要用于存储地理位置信息,并对存储的信息进行操作。

在日常生活中,我们越来越依赖搜索 “附近的餐馆”、在打车软件上叫车,这些都离不开基于位置信息服务(Location-Based Service,LBS)的应用。LBS 应用访问的数据是和人或物关联的一组经纬度信息,而且要能查询相邻的经纬度范围,GEO 就非常适合应用在 LBS 服务的场景中。

内部实现

GEO 本身并没有设计新的底层数据结构,而是直接使用了 Sorted Set 集合类型。

GEO 类型使用 GeoHash 编码方法实现了经纬度到 Sorted Set 中元素权重分数的转换,这其中的两个关键机制就是「对二维地图做区间划分」和「对区间进行编码」。一组经纬度落在某个区间后,就用区间的编码值来表示,并把编码值作为 Sorted Set 元素的权重分数。

这样一来,我们就可以把经纬度保存到 Sorted Set 中,利用 Sorted Set 提供的“按权重进行有序范围查找”的特性,实现 LBS 服务中频繁使用的“搜索附近”的需求。

常用命令

# 存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。
GEOADD key longitude latitude member [longitude latitude member ...]
# 从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。
GEOPOS key member [member ...]
# 返回两个给定位置之间的距离。
GEODIST key member1 member2 [m|km|ft|mi]
# 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]

应用场景

滴滴叫车

这里以滴滴叫车的场景为例,介绍下具体如何使用 GEO 命令:GEOADD 和 GEORADIUS 这两个命令。

假设车辆 ID 是 33,经纬度位置是(116.034579,39.030452),我们可以用一个 GEO 集合保存所有车辆的经纬度,集合 key 是 cars:locations。

执行下面的这个命令,就可以把 ID 号为 33 的车辆的当前经纬度位置存入 GEO 集合中:

GEOADD cars:locations 116.034579 39.030452 33

当用户想要寻找自己附近的网约车时,LBS 应用就可以使用 GEORADIUS 命令。

例如,LBS 应用执行下面的命令时,Redis 会根据输入的用户的经纬度信息(116.054579,39.030452 ),查找以这个经纬度为中心的 5 公里内的车辆信息,并返回给 LBS 应用。

GEORADIUS cars:locations 116.054579 39.030452 5 km ASC COUNT 10

以上就是“Redis特殊数据类型之Geospatial怎么应用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Redis特殊数据类型之Geospatial怎么应用

本文链接: https://www.lsjlt.com/news/74307.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis特殊数据类型之Geospatial怎么应用
    今天小编给大家分享一下Redis特殊数据类型之Geospatial怎么应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收...
    99+
    2022-10-19
  • Redis特殊数据类型Geospatial怎么使用
    这篇文章主要介绍“Redis特殊数据类型Geospatial怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Redis特殊数据类型Geospatial怎么使用”文章能帮助大家解决问题。Redi...
    99+
    2023-06-30
  • Redis特殊数据类型Geospatial地理空间
    目录Redis特殊数据类型Geospatial地理空间一、geoadd二、geopos三、geodist四、georadius五、georadiusbymember六、geohash...
    99+
    2022-11-13
  • Redis特殊数据类型之stream怎么应用
    这篇文章主要介绍“Redis特殊数据类型之stream怎么应用”,在日常操作中,相信很多人在Redis特殊数据类型之stream怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-19
  • Redis特殊数据类型bitmap位图
    目录Redis数据类型bitmap位图一、setbit二、getbit三、bitcountRedis数据类型bitmap位图 bitmap数据结构,是基于二进制位来进行操作记录的,只...
    99+
    2022-11-13
  • Redis的特殊数据类型如何使用
    这篇文章主要介绍“Redis的特殊数据类型如何使用”,在日常操作中,相信很多人在Redis的特殊数据类型如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis的特殊数据类型如何使用”的疑惑有所帮助!...
    99+
    2023-06-29
  • redis中的三种特殊数据类型
    本篇内容主要讲解“redis中的三种特殊数据类型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis中的三种特殊数据类型”吧!redis 三种特殊的数据类型...
    99+
    2022-10-18
  • Redis中的特殊数据类型有哪些
    这篇文章将为大家详细讲解有关Redis中的特殊数据类型有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis除了5种基础数据类型,还有三种特殊的数据类型,分别是 ...
    99+
    2022-10-19
  • Redis中有哪些特殊的数据类型
    这期内容当中小编将会给大家带来有关Redis中有哪些特殊的数据类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言Reids 在 Web 应用的开发中使用非常广泛,几乎...
    99+
    2022-10-18
  • 详解redis的三种特殊数据类型
    14天学习训练营导师课程: 郑为中《Vue和SpringBoot打造假日旅社管理系统》 努力是为了不平庸~ 学习有些时候是枯燥的,但收获的快乐是加倍的,欢迎记录下你的那些努力时刻(学习知识点/题解/项目实操/遇到的bug/等等),在分享的同...
    99+
    2023-08-20
    redis java 数据库
  • Redis三种特殊数据类型的具体使用
    目录一、HyperLogLog 基数统计1.1 什么是基数?1.2 使用基数统计的好处1.3 应用场景1.4 注意事项 1.5 基本命令1.6 使用二、Geospatial...
    99+
    2022-11-13
  • Redis特殊数据类型HyperLogLog基数统计算法讲解
    目录Redis HyperLogLog基数统计一、pfadd二、pfcount三、pfmergeRedis HyperLogLog基数统计 HyperLogLog 是用来做基数统计的...
    99+
    2022-11-13
  • python day3特殊数据类型是怎样的
    这期内容当中小编将会给大家带来有关python day3特殊数据类型是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。集合:list声明方式:a=[1,2,3,4](里面也可以是字符串,浮点等等)按照...
    99+
    2023-06-02
  • Redis中的5种数据类型怎么应用
    本文小编为大家详细介绍“Redis中的5种数据类型怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redis中的5种数据类型怎么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2022-10-19
  • redis怎么更改数据类型
    在Redis中,可以使用以下命令更改数据类型:1. `SET key value`:将键 key 的值设置为 value,如果键 k...
    99+
    2023-08-30
    redis
  • redis中的hash数据类型怎么用
    这篇文章主要介绍redis中的hash数据类型怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. hash类型数据概述我们先来看这个例子在上一节我们一起了解了 string 存...
    99+
    2022-10-19
  • Redis数据类型string和Hash怎么用
    这篇文章给大家分享的是有关Redis数据类型string和Hash怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。String类型命令操作String类型是在Redis中最常用的数据类型,它也是很多程序员在日...
    99+
    2023-06-29
  • Redis数据类型及应用场景是什么
    小编给大家分享一下Redis数据类型及应用场景是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. string类型1-1 ...
    99+
    2022-10-18
  • go语言中的shell数据类型有哪些特殊的用途?
    Go语言中的Shell数据类型有哪些特殊的用途? 在Go语言中,Shell数据类型是一种非常重要的数据类型,它可以在Go语言中方便地进行文件操作、文本处理以及系统命令的执行。本文将介绍在Go语言中常见的Shell数据类型以及它们的一些特殊用...
    99+
    2023-06-25
    load shell 数据类型
  • 怎么使用PHP数据类型之查看和判断数据类型
    这篇文章主要介绍怎么使用PHP数据类型之查看和判断数据类型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!查看数据类型gettype(传入一个变量)等够获得变量的类型 var_dump(传入一个变量)输出变量的类型和值...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作