• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Redis发布和订阅

武飞扬头像
llp1110
帮助1

Redis发布和订阅

1.发布和订阅是什么

一句话:Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (publisher) 发送消息,订阅者 (subscribe) 接收消息。

Redis 客户端可以订阅任意数量的频道:

1、客户端订阅频道示意图

学新通

2、当给这个频道发布消息后,消息就会发送给订阅的客户端

学新通

2.如何理解发布和订阅模式

任务队列

1、顾名思义,就是"传递消息的队列"

2、与任务队列进行交互的实体有两类,一类是生产者(producer),另一类则是消费者
(consumer)。生产者将需要处理的任务放入任务队列中,而消费者则不断地从任务队列
中读入任务信息并执行

如何理解

  • 可以这么简单的理解:
  1. Subscriber:收音机,可以收到多个频道,并以队列方式显示
  2. Publisher:电台,可以往不同的 FM 频道中发消息
  3. Channel:不同频率的 FM 频道

从 Pub/Sub 的机制来看,它更像是一个广播系统,多个订阅者(Subscriber)可以订阅多
个频道(Channel),多个发布者(Publisher)可以往多个频道(Channel)中发布消息。

3.发布订阅模式分类

1.一个发布者,多个订阅者

主要应用:通知、公告

可以作为消息队列或者消息管道

  • 示意图

学新通

2.多个发布者,一个订阅者

各应用程序作为 Publisher 向 Channel 中发送消息,Subscriber 端收到消息后执行相应的
业务逻辑,比如写数据库,显示…

主要应用:排行榜、投票、计数

  • 示意图

学新通

3.多个发布者,多个订阅者

可以向不同的 Channel 中发送消息,由不同的 Subscriber 接收。

主要应用:群聊、聊天

  • 示意图

学新通

4.命令行实现发布和订阅

发布订阅操作

1、PUBLISH channel msg
将信息 message 发送到指定的频道 channel

publish channel1 hello,llp

2、SUBSCRIBE channel [channel …]
订阅频道,可以同时订阅多个频道

subscribe channel1 channel2

3、UNSUBSCRIBE [channel …]

取消订阅指定的频道, 如果不指定频道,则会取消订阅所有频道

4、PSUBSCRIBE pattern [pattern …]
订阅一个或多个符合给定模式的频道,每个模式以 * 作为匹配符,比如 it* 匹配所 有
以 it 开头的频道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配所有 以 news. 开
头的频道( news.it 、 news.global.today 等等),诸如此类

5、PUNSUBSCRIBE [pattern [pattern …]]
退订指定的规则, 如果没有参数则会退订所有规则

快速入门

1、打开一个客户端订阅 channel1

学新通

2、打开另一个客户端,给 channel1 发布消息 hello

学新通

3、返回的 1, 是订阅者数量
4、发布的消息没有持久化
5、订阅的客户端, 只能收到订阅后发布的消息

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfiekbk
系列文章
更多 icon
同类精品
更多 icon
继续加载