redis特殊数据类型geospatial

2023-11-04 10:10

本文主要是介绍redis特殊数据类型geospatial,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

redis特殊数据类型geospatial

Geospatial是地理位置数据类型
朋友的定位、附近的人、打车距离计算?
Redis geo在redis3.2里就推出了该功能,这个功能可以推算出地理位置的信息,两地之间的距离、方圆几公里的人!

官方链接可点击: link.

在这里插入图片描述
Geoadd添加地理位置信息
Geoadd +key +经度 +纬度 +地理名称
有效经度是 -180到180度
有效纬度是 -85.05112878度到85.05112878
超过了有效的经纬度会报错

在这里插入图片描述
Geopos 获得指定地理位置的经度
Geopos +key +地理名称

在这里插入图片描述Geodist 命令 - 返回两个给定位置之间的距离(直线距离)
指定单位的参数 unit 必须是以下单位的其中一个:
m 表示单位为米。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。
北京到长沙有多少公里?
geodist china beijing changsha km
Geodist +key +地理位置1 +地理位置2 +距离单位

在这里插入图片描述
Georadius 判断某坐标附近的东西(比如我附近的人)
Georadius +key +坐标 +附近多少距离 +距离单位
查询的数据前提是你的key里面录了这个数据

在这里插入图片描述Georadius 判断某坐标附近的东西(比如我附近的人)并显示出经纬度
Georadius +key +坐标 +附近多少距离 +距离单位 +withcoord

在这里插入图片描述
Georadius 判断某坐标附近的东西(比如我附近的人)并显示出距离
Georadius +key +坐标 +附近多少距离 +距离单位 +withdist

在这里插入图片描述Georadius 判断某坐标附近的东西(比如我附近的人)并显示出距离和经纬度、并且只显示一个
Georadius +key +坐标 +附近多少距离 +距离单位 +withcoord +withdist +count 数量

在这里插入图片描述
Georadiusbymember 判断某坐标附近的东西(城市附近的城市)
georadiusbymember china changsha 1000 km 判断长沙附近1000km的城市 是杭州

在这里插入图片描述
Geohash 把坐标一字符串的形式输出来
Geohash +key +地理位置

geospatial的底层基本原理

Geo的底层原理就是zset的封装
查看geo类型的所有数据
在这里插入图片描述
删除beijing
在这里插入图片描述

使用zset的命令依然可以操作geospatial

这篇关于redis特殊数据类型geospatial的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345058

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

BUUCTF(34)特殊的 BASE64

使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrl+z 如果不小心撤销多了,可以用 Ctrl+Shift+Z 还原, 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串,想到base64的变表 这里用的c++的标准程序库中的string,头文件是#include<string> 这是base64的加密函数 std::string

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

Redis中使用布隆过滤器解决缓存穿透问题

一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。 二、布隆过滤器原理 布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

Redis的rehash机制

在Redis中,键值对(Key-Value Pair)存储方式是由字典(Dict)保存的,而字典底层是通过哈希表来实现的。通过哈希表中的节点保存字典中的键值对。我们知道当HashMap中由于Hash冲突(负载因子)超过某个阈值时,出于链表性能的考虑,会进行Resize的操作。Redis也一样。 在redis的具体实现中,使用了一种叫做渐进式哈希(rehashing)的机制来提高字典的缩放效率,避

【吊打面试官系列-Redis面试题】说说 Redis 哈希槽的概念?

大家好,我是锋哥。今天分享关于 【说说 Redis 哈希槽的概念?】面试题,希望对大家有帮助; 说说 Redis 哈希槽的概念? Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

特殊JSON解析

一般的与后台交互;都会涉及到接口数据的获取;而这里的数据一般情况就是JSON 了;JSON 解析起来方便;而且数据量也较小一些;所以JSON在接口数据返回中是个很不错的选择。 下面简单说下JSON解析过程中的一些案例: 这里我用到了三方的架包:fastjson-1.1.39.jar 架包 可以在我的博客中找到下载;或者网上找下 很多的; 这里主要就是映射  关系了;这就要求:实体类的名称和