
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
⑨Redis Stream基本操作命令汇总
一、Redis流 (Stream)
Redis 5.0 之前,实现消息队列的两种方案:
方案一:List实现
方案二:发布订阅(Pub/Sub)
Redis 5.0 后:
- Redis Steam 是redis 5.0 新增的一种数据结构
- Redis Stram可以用来实现消息队列,它支持消息的持久化、支持自动生成全局唯一ID、支持ack确认消息的模式、支持消费组模式等,让消息队列更加稳定和可靠
Stream 结构:

- Stream本质是一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的ID和对应的内容
Message Content: 消息内容Consumer group:消费组,通过XGROUP CREATE命令创建,一个消费组中可以有多个消费者Last_delivered_id:游标,每个消费组会有一个游标Last_delivered_id,任意一个消费者读取了消息都会使得这个游标往前移动Consumer:消费组中的消费者Pending_ids:每个消费者都会有一个状态变量,用于记录被当前消费者已读取但未被ack确认的消息ID,如果客户端没有ack确认,这个变量里面的消息ID会愈来愈多,一旦某个消息被ack,它就开始减少。这个Pending_ids变量在Redis官方被称为PEL(Pending Entries List),记录了当前已经被客户端读取的但还未ack (Acknowledge character:确认字符)的消息,它用来确保客户端至少消费了消息一次,而不会在网络传输的中途丢失而导致没处理。
二、Redis Stream 基本操作命令
1.队列相关命令
① xadd 向Stream队列添加消息
xadd key [NOMKSTREAM] [MAXLEN|MINID [=|~] threshold [LIMIT count]] *|id field value [field value ...]
# 消息队列:mystream ,不存在会先创建再添加消息
# * : * 号表示服务器自动生成 MessageID
# id —— 29 , name —— little29 ,两对键值对,也是添加到队列中的消息
xadd mystream * id 29 name little29

本文介绍了RedisStream在Redis5.0中的应用,包括其作为消息队列的实现、Stream结构、队列和消费组的基本操作命令,如添加消息、范围查询、删除、长度管理、消费组管理以及确认消息处理等。



最低0.47元/天 解锁文章
998

被折叠的 条评论
为什么被折叠?



