Redis数据库的发布与订阅(详细讲解)

article/2025/9/11 9:19:00

一、实验目的

了解Redis数据库的发布与订阅

二、发布与订阅

1.1什么是发布和订阅

发布订阅是一对多的关系,需要有信息的发布者和消息的收听者。

发布者:提供某个内容或主题,把内容信息发送给多个对此内容感兴趣的订阅者
订阅者:对某个内容感兴趣,需要实时获取新的内容,只要关注的内容有变化就能立即得到通知。

发布订阅应用在即时通信应用中较多,比如网络聊天室、实时广播、实时提醒,滴滴打车软件的抢单,外卖的抢单,微信中关注公众号/订阅号,公众号/订阅号发布的文章和信息等,也都可以使用发布订阅实现。

1.2Redis的发布和订阅

Redis 发布订阅 (pub/sub) 也是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。在一些系统中,Redis可以作为简易的单项消息通信服务器,提供数据群发功能。
请添加图片描述

三、代码实现

2.1常用命令

publish 发布消息

publish channel(频道名称) message
作用:将 message 消息发送到 channel 频道。message 是要发送的消息,channel是自定义的频道名称,唯一标识发布者

subscribe 订阅频道

语法:subscribe channel[channel…]
作用:订阅一个或多个频道的信息 返回值:订阅的消息

unsubscribe 退订频道

语法:unsubscribe channel [channel]
作用:退出指定的频道,不订阅。
返回值:退订的告知消息

2.2实验步骤(详细代码)

构建一个发布订阅系统,包括一个消息发布者,两个消息订阅者

启动Docker中,通过Redis启动redis服务

请添加图片描述

请添加图片描述

请添加图片描述

使用cmd窗口,连接到redis服务器上

redis-cli

请添加图片描述

依次开启三个客户端,并记清楚顺序

请添加图片描述

发布者设置频道

自行命名一个频道,让两个消息订阅者订阅该频道,就命名为“bingo”吧!

publish bingo message

请添加图片描述

订阅者订阅频道

subscribe Channel(bingo)

请添加图片描述

发布者在频道上发布消息

publish channel message

请添加图片描述

订阅者自动接收消息

请添加图片描述
注意:
发布的消息没有持久化,发布者只能收到 订阅后发布者发布的消息,意识是订阅前的消息不能收到,取消订阅后发的消息也收不到。


http://chatgpt.dhexx.cn/article/olgXKkk4.shtml

相关文章

Redis发布和订阅

一、什么是Redis发布和订阅 Redis的发布(pub)和订阅(sub)是一种消息通信模式。它包含有三个角色分别是:发送者、订阅者、频道。 Redis客户端可以订阅多个任意的频道。 Redis发布和订阅的结构图: 发送者:用于发送消息 订阅者:订阅…

Redis--发布订阅--原理/使用场景

原文网址:Redis--发布订阅--原理/使用场景_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Redis的发布订阅功能。 Redis发布订阅简述 Redis提供了基于“发布/订阅”模式的消息机制。此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端…

php查netstat,netstat怎么查看端口状态

netstat查看端口状态的方法:首先打开终端命令窗口;然后通过命令“netstat -ntlp”查看当前所有tcp端口;最后通过“netstat -ntulp | grep 80”命令查看所有80端口使用情况即可。 本教程操作环境:linux5.9.8系统,DELL G…

Linux系统使用ss命令查看端口状态

Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 状态之间的关系 3.ss的使用 3.1 使用示例 3.2 过滤 3.2.1 状态过滤 3.2.2 通过family过滤 3.2.3 使用地址和端口过滤 …

Win7怎样查看端口状态

在Win7系统中,查看端口状态可以采用以下两种方法: 1.netstat 先单击“开始”,再单击“运行”,输入"cmd",进入DOS窗口。输入命令"netstat -na",按回车,就会显示本机连接情况…

Linux查看端口状态

在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 netstat命令各个参数说明如下: -t : 指明显示TCP端口   -u : 指明显示UDP端口   -l : 仅显示…

php 查看端口配置信息,查看端口状态的命令是什么

查看端口状态的命令是“netstat”,其语法是“netstat -ntlp”,netstat命令一般用于检验本机各端口的网络连接情况,netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听等相关报告。 linux系统中查…

通过查看端口状态查看mongodb是否已经启动

LINUX环境下,可以通过查看端口27017的状态查看mongod是否已经启动。 netstat -lanp | grep "27017" 可以看到已经启动了mongod服务。 然后关闭mongod服务 sudo service mongod stop 可以看到端口状态发生了变化 再开启服务 sudo service mongod star…

Linux查看端口状态及 查看与其他主机的联通状态 命令

目录 netstat Telnet netstat 在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询 netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明…

Ubuntu开放端口及其查看端口开放状态

前言 在服务器部署应用的时候,我们经常要查看这个应用是否部署成功,而一般就是通过ip 端口的方式在浏览器上进行查看默认的一些页面是否出现当页面没有出现的情况下,不一定是应用没启动成功,可能是因为端口未开放出去&#xff0…

netstat查看端口状态

netstat(network status网络状态)命令各个参数说明如下: -t : 指明显示TCP端口,t是TCP的首字母。 -u : 指明显示UDP端口,u是UDP的首字母 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(proto…

Netstat查看端口状态,netstat命令详解

netstat命令详解 概述Netstat查看端口状态 概述 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 Netstat查看端口状态 1、点击左下角的【开始】,找到运行,或是直接…

聊聊linux查看服务和端口状态命令netstat

使用netstat命令可以查看linux系统中正在使用的服务和端口情况 常见参数 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听…

linux中查看端口状态以及是否被占用的相关操作指令(netstat、isof)

linux中查看端口状态 linux中查看端口状态1、netstat1.1、查看服务器上服务和端口1.2、查看某个端口是否被占用 2、lsof:进程打开文件的相关信息2.1、列出80端口目前打开的文件列表2.2、列出所有的网络连接2.3、查看进程打开了某个文件2.4、查看某个用户打开的所有文…

绝对优势与比较优势的数学分析与其…

广义动量定理与系统思考 ——战争、管理学与经济学通论 2.4 作用点与经济学 2.4.1 作用点与比较优势 当有n国生产2种产品时,可以写出如下的带约束的函数, 其中Fi1和Fi2分别为i国生产1单位产品1和产品2所需劳动量,xi…

新-新古典综合给出的正统答案-中国视角下的宏观经济

新-新古典综合给出的正统答案-潘登同学的宏观经济学笔记 文章目录 新-新古典综合给出的正统答案-潘登同学的宏观经济学笔记 当前主流宏观经济学(新-新古典综合)的思想源流古典理论凯恩斯理论新古典综合(neoclassical synthesis)新-新古典综合(New-neoclassical synthesis) 宏观…

经济学计算机会成本,经济学思维方式之二——机会成本、经济利润

今天的内容,顺着昨天的成本收益模型,来说一说经济学里两个重要的概念——机会成本和经济利润。 首先,说说我自己跨学科学习的理念。 跨学科学习学什么?学的是匪夷所思的概念和模型,是不通过系统学习,这辈子…

国内首次!3位清华姚班00后学霸斩获计算机理论顶会最佳学生论文奖

作者丨Joey 好困 来源丨新智元 【导读】2022年计算机理论顶会STOC正式开幕,来自清华姚班的三位00后学霸斩获最佳学生论文奖。 近日,理论计算机科学领域顶级国际会议第54届ACM计算理论年会(STOC 2022)拉开帷幕。 清华姚班的三位00后…

第三天之C++面向对象模型初探(this指针)

前言 C对象模型可以概括为以下2部分: 语言中直接支持面向对象程序设计的部分,主要涉及如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。对于各种支持的底层实现机制。 在c语言中,“数据”和…

一个简单的智能合约模型

我问过的每个人对“智能合约”有着不同的定义。下面是我的智能合约定义。 最近这些天,我听到越来越的人谈论“智能合约”。但是,当你让他们对“智能合约”这一术语下一个定义的时候,他们不能清晰地表达,这一个概念就像从他们手中溜…