Redis消息模式

本文详细介绍了Redis中的两种消息模式:消息队列和发布订阅。发布订阅功能通过发布者、频道和订阅者角色实现类似广播的效果,其中PUBLISH和SUBSCRIBE命令用于发送和接收消息。在发布订阅模式下,消息仅在订阅后实时传递,不缓存历史消息。此外,还展示了如何订阅特定频道和使用通配符进行群订阅。Redis的消息模式在资源协调和实时通信中起到关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis消息模式有哪几种形式?

一、redis消息模式详细介绍

1.画图说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yPrtP3N0-1619075431156)(https:upload-images.jianshu.io/upload_images/16956686-a1a42c3d7fe9855e.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqNrm3po-1619075431157)(C:\Users\86150\Desktop\数据库\img\image-20210421214455292.png)]

2.介绍

消息模式是为了帮助解决在架构中,资源有效利用方面提供有效的协调
redis的消息模式有两种形式:
	消息队列
	发布订阅

二、发布订阅功能—类似于广播站

1.构成角色

pulisher     发布者
channel      频道
subsrciber   订阅者

2.发布订阅功能

--窗口1:必须要先订阅
127.0.0.1:6379> SUBSCRIBE fm1309
--窗口2:另一个界面发送消息
127.0.0.1:6379> PUBLISH fm1309 likeyou
(integer) 1
--窗口1:这边的终端会接收到消息
127.0.0.1:6379> SUBSCRIBE fm1309
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "fm1309"
3) (integer) 1
1) "message"
2) "fm1309"
3) "likeyou"

PUBLISH channel msg
    将信息 message 发送到指定的频道 channel
SUBSCRIBE channel [channel ...]
    订阅频道,可以同时订阅多个频道
UNSUBSCRIBE [channel ...]
    取消订阅指定的频道, 如果不指定频道,则会取消订阅所有频道
PSUBSCRIBE pattern [pattern ...]
    订阅一个或多个符合给定模式的频道,每个模式以 * 作为匹配符,比如 it* 匹配所   有以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配所有 以 news. 开头的频道( news.it 、 news.global.today 等等),诸如此类
PUNSUBSCRIBE [pattern [pattern ...]]
    退订指定的规则, 如果没有参数则会退订所有规则
PUBSUB subcommand [argument [argument ...]]
    查看订阅与发布系统状态
注意:使用发布订阅模式实现的消息队列,当有客户端订阅channel后只能收到后续发布到该频道的消息,之前发送的不会缓存,必须Provider和Consumer同时在线。

3.既能听又能读----打开多个终端

发布订阅例子:
窗口1:
127.0.0.1:6379> SUBSCRIBE baodi 
窗口2:
127.0.0.1:6379> PUBLISH baodi "jin tian zhen kaixin!"
订阅多频道:
窗口1:
127.0.0.1:6379> PSUBSCRIBE wang*
窗口2:
127.0.0.1:6379> PUBLISH wangbaoqiang "jintian zhennanshou "

在这里插入图片描述

3.群订阅

--订阅x开头的
127.0.0.1:6379> SUBSCRIBE x*
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "x*"
3) (integer) 1

--加p:模糊订阅
127.0.0.1:6379> pSUBSCRIBE x*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "x*"
3) (integer) 1
专业做队列
kafka

rebbitMQ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值