redis 实现消息队列及常用命令(二)|学习笔记

简介: 快速学习 redis 实现消息队列及常用命令(二)

开发者学堂课程【Redis 入门实战演练  redis 实现消息队列及常用命令(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/653/detail/10838


redis 实现消息队列及常用命令(二)


六、查看队列所有消息

开一个 redis - c

127.0.0.1:6379> LRANGE(加队列名称) channel 1  0  -1(从开始到结尾)

1) "msg5"

2) "msg4"

3) "msg3"

4)"msg2"

5) "msg1

1668262141071.jpg

 

七、生产者消费者的消息

后期在程序里面通过 RPOP  来弹,但是一定要注意顺序,先进先出。当然我们的数据是最简单的数据。

127.0.0.1:6379> RPoP channel 1#从管道的右侧消费

"msg1"

127.0.0.1:6379> POP channel 1

"msg2"

127.0.0.1:6379> POP channel 1

"msg3"

127.0.0.1:6379> POP channel 1

"msg4"

127.0.0.1:6379> POP channel 1

"msg5"

127.0.0.1:6379 > POP channel 1

(nil)

1668262254247.jpg

(大家不用关心其他的消息队列软件是怎么用的,我们之后会讲到。)

 

八、支持发布者和订阅者模式

这个模式比较特殊,为什么比较特殊?因为之前的消息在生产者、消费者、订阅者模式下。这个消息只能被消耗一次。但是订阅模式不一样。生产者和消费者模式是一对一的,由生产者生产一个东西这个消息只能被一个消费者利用。在有多个生产者和消费者的情况下不需要一一绑定。

订阅者模式,一对多,一个消息可以被多个消费者消费,而且可以同时被消费。

在发布者订阅模式下,发布者将消息发布到指定的 channel 里面,凡是监听该Channel 的消费者都会受到同样的一份消息,这种模式类似于是收音机的广播模式,即凡是收听到某个频道的观众都会受到主持人发布的相同的消息内容。

1668262281477.jpg

订阅者在相同的群或者相同的频道内。

此模式常用语群聊天、群通知、群公告等场景。

(这个消息可以让当前在群里的人都可以看到,而不是只能让一个人看到。)

Subscriber:订阅者

Publisher:发布者

Channel:频道(会有好多频道,当然在公司里会给频道定义名称)

 

九、阅读者监听频道

在里面监听一个队列。这个频道名称没有也可以。

比如说监听一个 linux39

127.0.0.1:6379【2】>SUBSCRIBE linux39

1)“subscribe”

2)“linux39”

3)(integer) 1

这个频道需要找一个终端来模拟

这是一个发布者。

 

十、发布者发布消息

127.0.0.1:6379>PUBLISH channel 1 test #发布者发布消息

(integer) 2

127.0.0.1:6379> PUBLISH channel 1 test 2

(integer) 2

这个消息就可以看到。

只要发布之后过去之后,就看不到这个消息了。只能看见从当前开始往后的。

频道名称可以任意改变。

 

十一、可以订阅多个频道

订阅指定的多个频道

>SUBSCRIBE channel 1 channel 2

(在SUBSCRIBE这条指令后面可以跟多个频道名称,订购多个频道是根据公司的业务和能力来确定的 )

订阅者是负责接受上一级的请求在数据库中写账号和密码。

如果公司中有两套不同的业务,两个业务后台的数据不一样,但是都会经过订阅者到数据库这一步骤。

下图:无论是新产品还是二手交易都要做登录,这是需要将登陆消息发布到 MQ中,之后再由订阅者服务到数据库中做认证。之后订阅者就会对 MQ 做监控。这是订阅者就会监控多个序列里面的数据,分别是:新产品,二手交易。

1668262339283.jpg

127.0.0.1:6379> SUBSCRIBE Linux39 magedu

Reading messages... (press Ctrl-C to quit)

1)"subscribe

2)"linux39"

3) (integer)1

1)"subscribe"

2)"magedu"

3). (integer) 2

1)"message'

2)"magedu

3)"msg2"

 

十二、订阅所有频道

127.0.0.1:6379> PSUBSCRIBE*

在当前的 rides 内可以订阅所有频道。

127.0.0.1:637921> SUBSCRIBE

Reading messages.  (press Ctrl-C to quit)

1)"subscribe"

2)...

3)(integer) 1

1668262376993.jpg

这种模式用的不多,在当前 DB 中,所有频道都能订阅到。

1668262391208.jpg

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
消息中间件 存储 NoSQL
Redis 竟然能用 List 实现消息队列
今天,码哥结合消息队列的特点一步步带大家分析使用 Redis 的 List 作为消息队列的实现原理,并分享如何把 SpringBoot 与 Redission 整合运用到项目中。
729 0
Redis 竟然能用 List 实现消息队列
|
消息中间件 NoSQL Java
【Redis】浅尝Redis Stream做消息队列
SpringBoot整合Redis5.0新特性Redis Stream
1328 0
【Redis】浅尝Redis Stream做消息队列
|
6月前
|
消息中间件 存储 缓存
【Redis实战】有MQ为啥不用?用Redis作消息队列!?Redis作消息队列使用方法及底层原理高级进阶
【Redis实战】有MQ为啥不用?用Redis作消息队列!?Redis作消息队列使用方法及底层原理高级进阶
|
NoSQL Redis
Redis(十四)-Redis的发布订阅模式
Redis发布订阅(pub/sub)是一种消息通信模式,发送者(pub)发送消息,订阅者(sub)接收消息
136 0
Redis(十四)-Redis的发布订阅模式
|
消息中间件 NoSQL 关系型数据库
redis 实现消息队列及常用命令(三)|学习笔记
快速学习 redis 实现消息队列及常用命令(三)
403 0
redis 实现消息队列及常用命令(三)|学习笔记
|
消息中间件 JSON NoSQL
redis 实现消息队列及常用命令(一)|学习笔记
快速学习 redis 实现消息队列及常用命令(一)
435 0
redis 实现消息队列及常用命令(一)|学习笔记
|
消息中间件 NoSQL Redis
Redis 入门:在 redis 中操作 pub-sub 消息| 学习笔记
快速学习 Redis 入门:在 redis 中操作 pub-sub 消息。
Redis 入门:在 redis 中操作 pub-sub 消息| 学习笔记
|
消息中间件 缓存 NoSQL
Redis 入门:pub,sub 模式消息通知的说明| 学习笔记
快速学习 Redis 入门:pub,sub 模式消息通知的说明。
Redis 入门:pub,sub 模式消息通知的说明| 学习笔记
|
消息中间件 存储 缓存
redis 学习笔记(队列功能)
redis 学习笔记(队列功能)
|
NoSQL Redis
redis发布订阅命令行实现
redis发布订阅命令行实现
redis发布订阅命令行实现
下一篇
无影云桌面