首页 > 数据库 >redis详细教程(4.GEO,bitfield,Stream)

redis详细教程(4.GEO,bitfield,Stream)

时间:2024-10-30 11:16:19浏览次数:8  
标签:流中 Stream redis Redis bitfield 消息 offset 查询 type

GEO

Redis GEO 是 Redis 数据库中的一个功能模块,自 Redis 3.2 版本开始引入,专门用于处理地理位置信息。这个模块使得 Redis 能够存储并查询地理坐标,非常适合用于需要地理位置数据的应用,如实时位置查询、地理围栏、距离计算等。

Redis GEO 的数据结构是基于有序集合(Sorted Set)。每个地理位置信息由经度、纬度和一个唯一的标识符组成。

常用命令:

  1. GEOADD:向有序集合中添加地理位置坐标。
  2. GEOPOS:从有序集合中获取指定位置的坐标。
  3. GEODIST:计算两个位置之间的距离。
  4. GEORADIUS:根据给定的经纬度坐标,查询指定范围内的所有位置。

  1. longitude: 查询的中心点经度   
  2. latitude:查询中心点纬度  
  3. radius:查询半径   
  4. WITHCOORD:返回结果包含经纬度
  5. WITHDISH:返回包含地理哈希值

1.设定值,查询值,查询指定范围内的位置:

2.计算两个位置之间的距离:

Redis GEO 的经纬度范围有一定的限制,经度范围是 -180 到 180 度,纬度范围是 -85.05112878 到 85.05112878 度,超出这个范围的位置信息将无法正确存储和查询。

bitfield

BITFIELD 是 Redis 中的一个命令,用于对字符串键进行位操作。BITFIELD 命令可以执行多个子命令来同时对字符串键的不同位域进行读取、设置和自增/自减操作。

基本语法:
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]

GET type offset:从偏移量 offset 开始,获取长度为 type 的位域,并返回其十进制值。type 可以是 int 后跟位宽度(例如 int16),或者 u(无符号)后跟位宽度(例如 u8)。

SET type offset value:从偏移量 offset开始,设置长度为 type 的位域为 value。type和 value的定义与 GET子命令相同。

INCRBY type offset increment:从偏移量 offset 开始,将长度为 type 的位域增加 increment。如果结果超出了位域可以表示的范围,可以指定溢出行为(默认是 WRAP)。

OVERFLOW WRAP|SAT|FAIL:指定当 INCRBY 操作发生溢出时的行为。WRAP 表示回绕(默认行为),SAT 表示饱和(即达到最大值后不再增加),FAIL 表示操作失败并不改变值。

这个命令对偏移量100处的8位符号整数加一,也获取0处4位无符号整数值

BITFIELD允许对单个位进行操作,因此可以非常节省空间。

Stream

Redis 是 StreamRedis 5.0 版本引入的一种新的数据结构,用于存储一系列顺序不可变的记录。这些记录是由字段和值组成的映射,类似于 Redis 的 Hash 结构。Redis Stream 主要用于消息传递系统,它可以看作是一个持久化的消息队列,能够保证消息的有序性和可靠性。

一个消息由一个唯一的标识符(ID)和一个或多个字段-值对组成,流是消息的集合,每个流都有一个唯一的键名。

基本命令

  1. XADD:向流中添加消息。
  2. XREAD:从流中读取消息。
  3. XRANGE:获取流中一定范围内的消息。
  4. XREVRANGE:与 XRANGE 类似,但是返回的消息是倒序的。
  5. XDEL:从流中删除消息。
  6. XLEN:获取流中消息的数量。
  7. XGROUP CREATE:创建消费者组。
  8. XREADGROUP GROUP:从消费者组中读取消息。

1.让 Redis 自动生成一个唯一的消息 ID,name 和 age是字段名,ZhangSan 和 30 是对应的值。

2.从流中读取消息,获取流中一定范围内的消息。

10是设定读取数量,0是设定初始读取值

3.XRANGE:获取流中一定范围内的消息。

4.倒序

5.删除消息,然后获取流中消息的数量。

6.创建消费者组,并从消费者组中读取消息

使用stream适合解决消息队列问题,其性能强大,兼容性强,功能多样

标签:流中,Stream,redis,Redis,bitfield,消息,offset,查询,type
From: https://blog.csdn.net/2301_81490350/article/details/143318498

相关文章

  • InnoDB存储引擎、多版本并发控制(MVCC)简介、Redis简介
    (一)InnoDB存储引擎InnoDB是MySQL最常用的存储引擎之一,有支持事务处理、行级锁定和外键约束等高级功能而著称。1、InnoDB架构物理结构表空间:InnoDB的数据存储空间在表空间中,表空间可以分为系统表空间、文件表空间和通用表空间。系统表空间:默认存储在ibdata1文件中,包含系统......
  • 配置Nginx/Redis开机自启
    1.进入/etc/systemd/system目录cd/etc/systemd/system2.创建nginx.service文件vimnginx.service3.配置nginx.service内容*ExecStart,ExecStop,ExecReload以服务器实际存放位置为准[Unit]Description=TheNGINXHTTPandreverseproxyserverAfter=network.targe......
  • redis中穿透、雪崩、击穿的理解
    一、穿透、雪崩、击穿的理解redis充当缓存图穿透、雪崩、击穿本质上都是查询redis数据库时没有数据从而去查业务数据库1、缓存穿透:(要查询的数据根本不存在)是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再......
  • Redis高级部分(集群,发布订阅)
    Redis高级部分:集群、发布订阅机制详解Redis主从复制1.主从复制概念主从复制架构主要用于数据的冗余备份,从节点仅用于同步数据。它无法自动处理主节点故障转移。2.主从复制架构图3.搭建主从复制步骤3.1准备环境3.2配置文件拷贝源码中的redis.conf到每个目录,并修改......
  • redis集群
    一、集群Redis在3.0后开始支持Cluster(模式)模式,目前redis的集群支持节点的自动发现,支持slave-master选举和容错,支持在线分片(shardingshard)等特性二、集群架构图三、细节所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.节点的fail是......
  • token+redis使用
    在现代Web应用中,Token与Redis的结合使用已成为一种常见的身份验证和授权机制。Token的作用:会话跟踪,每次客户端携带token访问服务器,服务器端校验token的正确性。    好处:灵活的过期策略:Redis可以设置Token的过期时间,一旦过期,系统需要重新验证用户身份。通过合理地设......
  • JDK新特性--Stream流
    目录解释什么是Stream流以及它在Java中的作用?Stream流的概念Stream流的作用Stream流的使用示例注意事项描述StreamAPl中的中间操作和终端操作的区别?中间操作(IntermediateOperations)终端操作(TerminalOperations)解释并行流的概念及其优势?使用并行流时需要注意的事项:解释Stream......
  • redis主从复制与哨兵机制
    一、主从复制1、主从复制主从复制架构用来备份主节点的数据,主节点接受用户请求,从节点同步数据2、架构图3、搭建主从复制创建三个目录代表三台机器,master-7000,slave-7001,slave-7002拷贝源码中的redis.conf分别到master-7000,slave-7001,slave-7002中修改三台机器......
  • NGINX 1.20.1版安装stream模块
    NGINX于1.9.0版本开始支持stream模块来代理tcp连接。在Centos操作系统若前期以YUM方式安装了nginx,后期想要添加stream模块。1.首先需要检查nginx版本是否支持这一特性,若已支持可直接安装模块,否则重装。2.其次按照如下步骤(部分步骤仅做参考,未必需要执行)2.1安装CentOS的epel-releas......
  • Windows将Redis安装为服务
    一、下载RedisWindows版Redis下载地址:https://github.com/MicrosoftArchive/redis/releases注:这是微软官方维护的将Redis移植到Windows平台,可能会落后于官方Redis的版本这里使用免安装版Redis官方下载地址(Linux/Unix版):https://redis.io/download二、安装服务......