Redis发布、订阅模式(Pub/Sub)详解
Redis发布、订阅模式(PUB-SUB)详解

Redis的发布订阅(Pub/Sub)机制是一种消息通信模式,用于消息的广播。它允许多个客户端订阅(Subscribe)特定的频道(Channel),并在消息发布者(Publisher)向频道发布消息时,所有订阅该频道的客户端都能接收到消息。
工作原理
-
通信方式:
- Redis的发布-订阅模式基于消息的发布与订阅。消息由发布者发布到频道(Channel),而订阅者则可以订阅一个或多个频道,接收发布者发送到这些频道的消息。
-
频道(Channel):
- 频道是消息的通道,发布者将消息发送到特定的频道,订阅该频道的订阅者会接收到这些消息。频道在Redis中是一个由字符串标识的名字。
-
发布消息:
- 发布者通过向指定频道发送消息来发布消息。多个订阅者可以订阅同一个频道,发布者发送的消息将被所有订阅了该频道的订阅者接收。

4. 订阅消息:
- 订阅者通过执行订阅命令来订阅一个或多个频道。一旦订阅成功并且频道有消息发布,订阅者将接收到这些消息。

- 取消订阅:
- 订阅者可以随时取消对某个或所有频道的订阅,取消订阅后将不再接收该频道的消息。
使用方法

- 发布消息:
- 使用Redis的
PUBLISH命令向指定的频道发布消息。
其中,PUBLISH channel messagechannel是频道的名称,message是要发送的消息内容。
- 使用Redis的

-
订阅频道:
-
使用Redis的
SUBSCRIBE命令订阅一个或多个频道。SUBSCRIBE channel [channel ...] -
Redis还支持模式订阅(
Pattern Subscription),可以使用PSUBSCRIBE和PUNSUBSCRIBE命令订阅和取消订阅模式。 -
例如 PSUBSCRIBE news* 可以订阅所有以 news 开头的频道。
-
订阅成功后,Redis客户端将进入订阅模式,等待接收频道发布的消息。
-
返回值为当前订阅的频道数量。

-
-
取消订阅:
- 使用Redis的
UNSUBSCRIBE命令取消对一个或多个频道的订阅。
如果不指定频道名称,则取消所有频道的订阅。UNSUBSCRIBE [channel [channel ...]]
- 使用Redis的

Tips:
- 消息丢失:
- 如果订阅者在消息发布之前或之后才订阅或取消订阅某个频道,那么该订阅者可能会错过在它未订阅期间发布的消息。也就是说,只有在订阅者实时在线并且订阅了频道的情况下才能接收到消息。


- 无持久化:
- Redis的Pub/Sub模式不会持久化消息,也就是说,消息在发布后立即被传递给当前在线的订阅者,之后不会保存。如果订阅者断开连接或Redis服务器重启,已发布但未接收的消息将会丢失。


- 无确认机制:
- Pub/Sub模式中没有类似于消息队列中的确认机制,没有办法确保消息一定被所有订阅者成功处理。例如,如果某个订阅者在处理消息时崩溃,消息不会重新发送给该订阅者。

- 非事务性:
- 消息的发布和接收是非事务性的。发布者发布消息后,不会等待订阅者的应答,即便订阅者在消息发布后立即掉线,发布者也不会知道。

由于这些无保证性,Redis的Pub/Sub模式主要适用于那些对消息可靠性要求不高的应用场景。
相关文章:
Redis发布、订阅模式(Pub/Sub)详解
Redis发布、订阅模式(PUB-SUB)详解 Redis的发布订阅(Pub/Sub)机制是一种消息通信模式,用于消息的广播。它允许多个客户端订阅(Subscribe)特定的频道(Channel),…...
Django-开发一个列表页面
需求 基于ListView,创建一个列表视图,用于展示"BookInfo"表的信息要求提供分页提供对书名,作者,描述的查询功能 示例展示: 1. 数据模型 models.py class BookInfo(models.Model):titlemodels.CharField(verbose_name"书名",max_length100)authormode…...
flink 处理函数和流转换
目录 处理函数分类 概览介绍 KeydProcessFunction和ProcessFunction 定时器TimeService 窗口处理函数 多流转换 分流-侧输出流 合流 联合(Uniion) 连接(connect) 广播连接流(BroadcatConnectedStream…...
详细分析Springmvc中的@ModelAttribute基本知识(附Demo)
目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单…...
和利时SIS安全系统模块SGM210 SGM210-A02
和利时SIS安全系统模块SGM210 SGM210-A02 阀门定位器:(福克斯波罗, YTC,山武) PLC:(西门子,施耐德,ABB,AB,三菱,欧姆龙) 泵阀:(力士…...
浔川3样AI产品即将上线!——浔川总社部
浔川3样AI产品即将上线! 浔川AI翻译v3.0 即将上线! 浔川画板v5.1 即将上线! 浔川AI五子棋v1.4 即将上线! 整体通告详见:浔川AI五子棋(改进(完整)版1.3)——浔川python社…...
小阿轩yx-MySQL索引、事务
小阿轩yx-MySQL索引、事务 MySQL 索引介绍 是一个排序的列表,存储着索引的值和包含这个值的数据所在行的物理地址数据很多时,索引可以大大加快查询的速度使用索引后可以不用扫描全表来定位某行的数据而是先通过索引表找到该行数据对应的物理地址然后访…...
搞定求职难题:工作岗位列表+简历制作工具 | 开源专题 No.75
SimplifyJobs/New-Grad-Positions Stars: 8.5k License: NOASSERTION 这个项目是一个用于分享和跟踪美国、加拿大或远程职位的软件工作机会列表。该项目的核心优势和关键特点如下: 自动更新新岗位信息便捷地提交问题进行贡献提供一键申请选项 BartoszJarocki/cv…...
JavaWeb——MySQL数据库:约束
目录 1. 约束 1.1 概念: 1.2 分类: 1.3 使用: 1.4 外键约束; 1.5 总结 数据库:数据库都有约束,数据库设计,多表查询,事物这四方面的知识; 我们先按这个顺序进行学习ÿ…...
JS(JavaScript)入门指南(DOM、事件处理、BOM、数据校验)
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 玉阶生白露,夜久侵罗袜。 却下水晶帘,玲珑望秋月。 ——《玉阶怨》 文章目录 一、DOM操作1. D…...
江协科技51单片机学习- p16 矩阵键盘
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...
grpc学习golang版( 四、多服务示例)
系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写Client客户端五、测试六、示例代码 一、前言 多服务,即一个rpc提供多个服务给外界调用…...
Linux安装jdk17
我们进入到cd /usr/lib/下然后创建一个jdk17的文件夹 mkdir jdk17 进入到jdk17目录下 下载jdk17包 上传到Linux 解压jar包 tar -zxvf jdk-17_linux-x64_bin.tar.gz压解完毕后 配置环境变量 vim/etc/profilei 修改 esc 退出 :wq保存 export JAVA_HOME/usr/lib/jdk17/jdk-1…...
Java家教系统小程序APP公众号h5源码
让学习更高效,更便捷 🌟 引言:家教新选择,小程序来助力 在快节奏的现代生活中,家长们越来越注重孩子的教育问题。然而,如何为孩子找到一位合适的家教老师,成为了许多家长头疼的问题。现在&…...
PHP入门
一、环境搭建 无脑: 小皮面板(phpstudy) - 让天下没有难配的服务器环境!phpStudy官网2019正式推出phpStudy V8.0版本PHP集成环境,支持Windows与Linux系统,支持WEB面板操作管理,一键网站开发环境搭建配置,…...
docker ce的使用介绍
docker docker17.03以后 docker ce,社区免费版,vscode的docker插件使用的该版本(默认windows只支持windows容器,linux支持linux容器)docker ee,企业版本 docker17.03以前 docker toolbox,基于…...
SpringCloud Alibaba Sentinel 流量控制之流控模式实践总结
官网文档:https://sentinelguard.io/zh-cn/docs/flow-control.html wiki地址:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6 本文版本:spring-cloud-starter-alibaba:2.2.0.RELEASE 如下图所…...
【高考志愿】电子科学与技术
高考志愿选择电子科学与技术专业,无疑是向着科技创新的前沿迈出坚定步伐的明智之选。这一专业以其深厚的理论基础、前沿的技术应用和广泛的就业前景,吸引了众多有志于投身科技领域的学子。 首先,电子科学与技术专业所涵盖的内容丰富而深入。它…...
2024.06.26【读书笔记】|医疗科技创新流程(前言)【AI增强版】
目录 《BIODESIGN》第二版前言详细总结前言概述新增重要内容价值导向 (Value Orientation)全球视角 (Global Perspectives)更好的教学和学习方法 (Better Ways to Teach and Learn)全新视频集合 (New Videos)扩展的“实地”案例研究 (Expanded “From the Field” Case Studies…...
kubernetes Job yaml文件解析
一、yaml文件示例 apiVersion: batch/v1 kind: Job metadata:name: test-jobnamespace: mtactor spec:completions: 3parallelism: 1backoffLimit: 5activeDeadlineSeconds: 100template:spec:containers:- name: test-jobimage: centoscommand: ["echo","test…...
从Hub到交换机:一个被遗忘的环路案例,带你重新审视STP的实际价值与配置陷阱
从Hub到交换机:一个被遗忘的环路案例,带你重新审视STP的实际价值与配置陷阱 在某个制造业工厂的机房角落,一台老式集线器(HUB)仍然顽强地工作着——它连接着几台关键设备,因为某些历史原因尚未被替换。当网…...
【限时公开】ElevenLabs企业级有声书工作台搭建指南:Webhook自动触发+Notion项目看板+音频质量AI评分模型(含开源评估脚本)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs企业级有声书工作台全景概览 ElevenLabs 企业级有声书工作台(Enterprise Audiobook Studio)是一套面向出版机构、教育平台与内容工厂的端到端语音生成协同平台&#x…...
法律条款时间逻辑的DSL与状态机实现:从概念到工程实践
1. 项目概述:当法律条款遇上时间逻辑最近在做一个挺有意思的项目,叫“Clause-Logic/exoclaw-temporal”。光看名字,可能有点摸不着头脑,但如果你接触过合同、协议或者任何带有法律效力的文书,并且尝试过用代码去处理它…...
python访问sqlite(sqlalchemy)(orm方式)
文章目录sqlalchemy的理解Base declarative_base()的作用?__repr__方法查询db.query()并不是查询,query.count()和query.offset()才是查询?查询-拼接条件分组关联查询新增修改删除安装依赖开始接触sqlalchemy不太习惯,感觉有点抽象。后来换个视角瞬间…...
别再死记Ld≠Lq了!从磁路角度,手把手教你区分永磁同步电机的凸极与隐极
永磁同步电机:从磁路本质破解凸极与隐极的认知迷思 在电机工程领域,永磁同步电机(PMSM)的凸极与隐极特性常被简化为"Ld≠Lq"的数学表述,这种表面化的理解就像仅通过体温判断疾病一样片面。真正掌握这一概念需要深入磁路层面&#x…...
产品竞争策略方法论:构建“差异化 + 结构化 + 系统化”的竞争优势
目录 一、问题与背景 二、本文将系统讲解 三、产品竞争的本质与底层逻辑 3.1 竞争的本质 3.2 竞争的三层结构(必须理解) 3.3 IoT竞争的特殊性 四、IoT产品竞争结构模型(核心框架) 4.1 五层竞争模型(核心体系) 4.2 竞争演进路径 五、五大竞争策略模型(核心方法…...
Adobe-GenP 3.0终极指南:如何免费激活Adobe CC全系列软件
Adobe-GenP 3.0终极指南:如何免费激活Adobe CC全系列软件 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP 3.0是一款强大的Adobe Creative Cl…...
初创公司如何利用 Taotoken 低成本接入多种大模型能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何利用 Taotoken 低成本接入多种大模型能力 对于资源有限的初创技术团队而言,在产品开发初期集成人工智能能…...
NotebookLM Pro版到底贵在哪?——基于172小时真实工作流压测的TCO建模分析
更多请点击: https://intelliparadigm.com 第一章:NotebookLM Pro版到底贵在哪?——基于172小时真实工作流压测的TCO建模分析 在连续172小时跨时区协同实验中,我们部署了3类典型知识工作流:法律条文溯源分析、学术论文…...
ClawSuite:模块化网络安全工具集的设计原理与实战应用
1. 项目概述:ClawSuite,一个被低估的网络安全工具集如果你在网络安全领域摸爬滚打过几年,尤其是做过渗透测试或者红队评估,那你肯定对Metasploit、Nmap、Burp Suite这些名字如数家珍。但今天我想聊一个在GitHub上相对低调…...
