当前位置: 首页 > news >正文

Redis发布订阅【充当消息中间件】

Redis发布订阅【充当消息中间件】

1.Redis Stream

借鉴Kafka设计

在这里插入图片描述

实践命令

消息生产:

##* : 代表的是Redis自动给你生成id(如上图)
xadd stream1 * name zhengqian##想自己定义id: 最好是xxxx-x的格式,但一般采用Redis的自定义id
xadd stream1 12345 name zhengqian#查看创建的类型
type stream1

在这里插入图片描述

查看Stream里面有几条数据

#表示查询Stream1这个里面有几条数据,-:表示最小  +:表示最大
xrange stream1 - +

在这里插入图片描述

查看长度

xlen  stream1

在这里插入图片描述

删除某个数据

xdel   stream1  指定的数据key

在这里插入图片描述

我们知道消息中间主要是异步,消息解耦,那在我们所说的Redis中怎么读取呢?

读取命令

## 表示从stream1中读取一条数据(0-0:表示起始位置start-end)
xread count 1 streams stream1 0-0

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

## block 0 : 表示一直阻塞着:监听生产者那边有没有写入数据
## block 1000 :表示阻塞1000毫秒
## 表示从末尾读取 
xread block 0  count 1 streams stream1  $

在这里插入图片描述

为甚么在消息中间件重:消费的时候使用群组?

首先说下MQ:应用于分布式系统:MQ(MessageQueue)->消息中间件(消息队列)

当中MQ有一个重要的功能:解耦;MQ充当消息的搬运工

还有两个功能:异步:,削峰填谷(流量削峰)

那我们再回到群组: 我们知道消费者他们一般消费的并发能力是很低的,

那群组的能力就体现了:

  • 1.增加消费者的数量
  • 2.应对不同的场景

Redis完成群组消费

在MQ的消费中,对于群组内的消息,都要注意一个很重要的点: 避免重复消费

在这里插入图片描述

就这些吧,主要就是用来消费

消费者的命令:

##在Redis中针对stream1创建一个cg1群组:0-0:从头开始消费(就是一个通配的概念)
xgroupe create  stream1 cg1 0-0
####在Redis中针对stream1创建一个cg1群组:从末尾开始消费
xgroupe create  stream1 cg1 $

在这里插入图片描述

查看stream1是否有群组信息

xinfo stream stream1

对于10):表示创建的数量

在这里插入图片描述

查看群组的所有信息

##查看群组stream1所有的信息 
xinfo groups stream1

在这里插入图片描述

消费信息

##xreadgroupe: 消费群组
##groupe cg1 consumer1:消费群组名称为cg1下面的消费者consumer1
##count 1:表示消费1条 
##streams team1:表示消费的消息队列是streams steam1
## >:表示消费,并显示消费的信息
##block 0:表示没有生产者的消息,就阻塞等着生产的数据到来,并读一条(然后阻塞解除)
xreadgroupe  groupe cg1 consumer1 count 1 block 0 streams steam1 >

在这里插入图片描述

我们查看消费者cg1里面的结构

在这里插入图片描述

为了保证消费者的将生产者的数据消费掉,我们需要ACK确认

ACK确认

## 
xack  stream1 cg1  xxxxx-0  

在这里插入图片描述

查询Redis的国内中文网站: www.redis.cn/commands/xcliam.html

OK ,知识分享到这,自己知识成长记录

在这里插入图片描述

http://www.dtcms.com/a/520829.html

相关文章:

  • 高端网站制作平台企业策划书怎么写
  • 衡水企业做网站费用可以做用户画像的网站
  • 格式化输入/输出函数
  • 基于类内类间优化的元学习少样本故障诊断方法
  • 【02】C语言-变量的声明与赋值,printf格式化输出函数,sizeof()运算符
  • JDBC 全解析:从入门到实战,掌握数据库交互核心技术
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(7):文法運用
  • o2o网站平台怎么做知名网站排行榜
  • 移除原有 Git 仓库关联,在IDEA中重新初始化 Git 并推送到新仓库(详细图解、包含相关问题的解决办法)
  • 宠物网站建设福州企业如何建网站
  • 米兔音乐 1.0.1| 高音质电脑免费听歌,支持无损下载(夸克网盘),无广告干扰
  • 网站推广方法有中国万维网官网域名注册网站
  • 【C++】嵌套类访问外围类的私有成员
  • 常用的 git 命令
  • 【源文件mormot.net.async解析】
  • 给网站做优化刷活跃要收费吗帮人做网站如何收费
  • 网站 备案 名称网站开发服务的协议
  • 什么是CUDA架构
  • 项目——基于C/S架构的预约系统平台(2)
  • 网站建设工期及预算品牌vi形象设计公司
  • C++ 的学习路线(转)
  • wsl使用代理网络
  • c#笔记番外篇同步异步并行串行多线程(以及lambda 表达式和Stopwatch)
  • 扬州市住房建设局网站免费微信公众号素材网
  • P8813 [CSP-J 2022] 乘方
  • QT实现消息未读提示
  • 一个人是否可以做公司网站做网站 租服务器吗
  • 数学教学网站开发微网站 举例
  • deeptest平台使用python脚本进行断言 含json预处理
  • 爬虫的意义