Redis 发布和订阅详细介绍

news2024/11/25 19:11:09

发布和订阅

发布和订阅是什么

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

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

一图胜千言

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

在这里插入图片描述

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

在这里插入图片描述

如何理解发布和订阅模式

任务队列

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

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

如何理解

可以这么简单的理解:

  1. Subscriber:收音机,可以收到多个频道,并以队列方式显示

  2. Publisher:电台,可以往不同的FM 频道中发消息

  3. Channel:不同频率的FM 频道

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

发布订阅模式分类

个发布者,多个订阅者

  1. 主要应用:通知、公告

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

-示意图

在这里插入图片描述

多个发布者,一个订阅者

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

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

示意图

在这里插入图片描述

多个发布者,多个订阅者

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

主要应用:群聊、聊天

示意图

在这里插入图片描述

命令行实现发布和订阅

发布订阅操作

1、PUBLISH channel msg

​ 将信息message 发送到指定的频道channel

2、SUBSCRIBE channel [channel …]

​ 订阅频道,可以同时订阅多个频道
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、订阅的客户端, 只能收到订阅后发布的消息

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[CKA]考试之网络策略NetworkPolicy

由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 在现有的namespace fubar中创建一个名为allow-port-from-namespace的新Netwo…

云原生时代崛起的编程语言Go远程调用gRPC实战

文章目录 概述定义背景特点四种服务方法 实战环境配置proto文件简单RPCToken认证服务器流式RPC客户端流式RPC双向流式RPC 概述 定义 gRPC 官网地址 https://grpc.io/ 源码release最新版本v1.55.1 gRPC 官网文档地址 https://grpc.io/docs/ gRPC 源码地址 https://github.com/g…

【vue3】13-前端路由-Vue-Router的详解: 从入门到掌握

前端路由 前端路由的发展历程认识前端路由:后端路由阶段前后端分离阶段 Vue-Router的使用vue-router的基本使用vue-router的使用过程基本使用的细节补充 路由懒加载分包处理路由的其他属性动态路由路由嵌套路由的编程式导航动态管理路由对象路由导航守卫钩子 前端路…

【毕业N年系列】 毕业第五年

距离上一篇 【毕业N年系列】已经过去一年时间了。没想到自己当初的一个简单的想法竟然能坚持到第五年,希望自己能坚持下去吧,在耄耋古稀之年依然能回看自己的人生。当然本来想着今天能早点下班回来写这篇文章,显然又没有实现,加班…

termux安卓手机 无线adb调试安卓手机

调试机安转termux app Apk下载 安装 https://f-droid.org/packages/com.termux 打开termux 挂载内部存储到~/storage 目录 $ temux-setup-storage 换源加快下载与更新速度 termux-change-repo 选 Main 然后 清华 下载基础软件 pkg install git vim perl nodejs-lts wget…

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)

竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪) 无名小哥 2023年6月10日 用户通过对前面两讲中全国大学生电子设计竞赛真题植保无人机(2021)、送货无人机&#…

新人如何学习性能测试?一文5个步骤带你入门性能测试!

写在前面:测试岗位细化后分为很多,功能测试、性能测试、自动化测试、测试开发,这些都叫测试。性能测试在所有测试分工中,地位和薪资都比较高,可见下方图片: 中级第3条,高级第1条,都是…

深度学习入门——感知机

1 感知机是什么 感知机接收多个输入信号,输出一个信号。这里所说的“信号”可以想象成电流或河流那样具备“流动性”的东西。像电流流过导线,向前方输送电子一样,感知机的信号也会形成流,向前方输送信息。但是,和实际…

Java集合-Collection Map

文章目录 概念IterableCollection接口List接口ArrayListVectorLinkedListArrayList 和 LinkedList 比较 SetHashSet LinkedHashSetMapHashMap 概念 1.集合主要是两组:单列集合(Collection) , 双列集合(Map) 2.Collection 接口有两个重要的子接口 List ,Set . 他们的实现子类都…

SWIG介绍和使用

官网:https://www.swig.org/ github:https://github.com/swig SWIG 是一种软件开发工具,可将用 C 和 C 编写的程序与各种高级编程语言连接起来。 SWIG 与不同类型的目标语言一起使用,包括常见的脚本语言,如 Javascri…

redis集群-Redis(六)

上篇文章介绍了哨兵架构以及集群搭建。 哨兵架构&redisCluster-Redis(五)https://blog.csdn.net/ke1ying/article/details/131178880 redisCluster 接着上篇文章继续讲解,前面一个linux服务器已经有了8001和8004节点,现在继…

八大典型的黑盒测试方法已来袭,快快接住!

前言 有了软件缺陷的暴露,我们就需要通过各种软件测试的方法来查找出软件的漏洞,编写出测试用例,及时修改bug。 在下面的这篇文章中,我们将谈论八大典型的黑盒测试方法,一起来学习⑧💡 一、等价类划分法…

【Python实战】Python采集王者皮肤图片

前言 我们上一篇介绍了,如何采集王者最低战力,本文就来给大家介绍如何采集王者皮肤,买不起皮肤,当个桌面壁纸挺好的。下面,我和大家介绍如何获取数据。 环境使用 python 3.9pycharm 模块使用 requests 模块介绍 re…

c++返回值使用引用的注意事项

c返回值使用引用的注意事项 问题原因返回函数的引用形参另外一个问题解决方法 问题 引用变量b接受到的值为无意义的数字。 原因 int& b returnYingyong();相当于: int i2 3; int& b i2; 销毁 i2;将局部变量作为返回值,导致引用b数据无意义…

【LInux】进程间通信(共享内存)

文章目录 system V共享内存shmget(创建共享内存)ftok(key)ipcs指令shmctl(销毁共享内存)shmat代码 共享内存 system V共享内存 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间&am…

新能源突围,需要发力被忽视的中端品牌战场

作者 |张祥威 编辑 |德新 今年2月,受特斯拉等竞品降价影响,深蓝SL03销量下滑至4000台。深蓝的市场部上报长安中国,十天后开始降价,3月SL03销量重回正轨。 在巨头和新势力之间灵活腾挪,深蓝向外界展示了爆款制造的素质…

网络安全知识点梳理(期末不挂科)

网络安全复习知识点太多梳理不清晰?👏🏻👏🏻👏🏻 本文一篇帮你梳理清晰,内容覆盖整个大学网络安全知识点👌🏻 干货满满不看后悔👍&#x1f44…

leetcode 309.最佳买卖股票时机含冷冻期

题目描述 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在第二天买入…

基于深度学习的高精度足球检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度足球检测识别系统可用于日常生活中或野外来检测与定位足球目标,利用深度学习算法可实现图片、视频、摄像头等方式的足球目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

【Java基础学习打卡09】JRE与JDK

目录 引言一、JRE二、JDK三、JDK、JRE和JVM关系总结 引言 本文将介绍JRE、JDK是什么,以及JDK、JRE和JVM关系三者之间的关系。 一、JRE JRE全称为Java Runtime Environment,是Java应用程序的运行时环境。JRE包括Java虚拟机(JVM)、…