【Redis】Redis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )
文章目录
- 一、发布订阅模式
- 二、订阅频道
- 三、发布消息
- 四、接收消息
一、发布订阅模式
Redis 中 存在一种 发布订阅 消息通信模式 :
- 消息发布者 : 负责发送消息 , 订阅者需要订阅该发布者频道 ;
- 消息订阅者 : 负责接收消息 ;
订阅者 先 订阅 发布者频道 , 当 发布者 发布消息时 , 订阅者 会接收到该信息 ;
在 Redis 中 , 发布者 是 消息频道 , 订阅者 是 Redis 客户端 ;
- 一个 Redis 客户端可以 订阅多个 消息频道 ;
- 一个 消息频道 可以 被多个 Redis 客户端 订阅 ;
当 消息频道 发送消息后 , 订阅该频道的 客户端 , 就会收到该频道发送的消息 ;
二、订阅频道
订阅频道 : 在一个命令行中 , 执行
subscribe channel1
命令 , 可以 订阅 名称为 channel1 的 消息频道 ;
上述命令执行后 , 在命令行中会 阻塞等待 channel1 的消息到来 ;
代码示例 :
127.0.0.1:6379> subscribe channel1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel1"
3) (integer) 1
三、发布消息
重新打开一个 CMD 命令行工具 , 执行
publish channel1 hello
命令 , 向 channel1 通道中 , 发送 hello 消息 ;
代码示例 :
127.0.0.1:6379> publish channel1 hello
(integer) 1
127.0.0.1:6379>
四、接收消息
命令行 1 中 , 执行 subscribe channel1
命令 , 订阅了 channel1 频道 ;
命令行 2 中 , 执行 publish channel1 hello
命令 , 向 channel1 频道发送了 hello 消息 ;
然后在 命令行 1 中 , 接收到了 hello 消息 ;
代码示例 :
127.0.0.1:6379> subscribe channel1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channel1"
3) (integer) 1
1) "message"
2) "channel1"
3) "hello"
接收的消息内容是 :
1) "message"
2) "channel1"
3) "hello"
相关文章:
![](https://img-blog.csdnimg.cn/0ca47fe9a69d48af89f61117b80c1aa7.png)
【Redis】Redis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )
文章目录一、发布订阅模式二、订阅频道三、发布消息四、接收消息一、发布订阅模式 Redis 中 存在一种 发布订阅 消息通信模式 : 消息发布者 : 负责发送消息 , 订阅者需要订阅该发布者频道 ;消息订阅者 : 负责接收消息 ; 订阅者 先 订阅 发布者频道 , 当 发布者 发布消息时 , …...
![](https://img-blog.csdnimg.cn/img_convert/be9371af6a559b24dfbe0f10be84c644.png)
VNCTF 2023复现
文章目录象棋王子电子木鱼BabyGo象棋王子 签到题,直接在源码中找就ok。 找到一处编码,在控制台输出。 flag为:flag{w3lc0m3_t0_VNCTF_2023~~~} 电子木鱼 需要先理清代码逻辑。 存在三个路由。 一:/路由用来查看当前的功德数量…...
![](https://img-blog.csdnimg.cn/img_convert/c2ea81d9b359a44ffff8b61f3d35a149.jpeg)
python基础知识有哪些需要背(记住是基础知识)我是初学者
大家好,小编来为大家解答以下问题,一个有趣的事情,一个有趣的事情,今天让我们一起来看看吧! 1、python基础知识有哪些需要背(记住是基础知识)我是初学者 或看好Python的广阔前景,或…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux下TCP连接断开后不释放的解决办法
问题:在开发测试时发现断开与服务器端口后再次连接时拒绝连接。 分析:服务器上查看端口占用情况,假设端口为8888。 netstat -anp |grep 8888 发现端口8888端口显示被占用(ip为本机ip确定是上次连接)且状态为ESTABLI…...
![](https://www.ngui.cc/images/no-images.jpg)
1.关于嵌入式开发软件工程师的理解
学习嵌入式软件开发,首先要学会使用工具, 包括各种语言,C语言、FPGA、C等各种工具软件,各种芯片开发的IDE环境各种操作系统,Vxworks、Linux、Freertos等计算机基础,基本的框架结构,网络通信等编…...
![](https://www.ngui.cc/images/no-images.jpg)
1760字,让你拿捏 [‘列表‘]
如约而至,紧接着第一篇文章,小编将会陆续把自己精心做的全套Python笔记依次发放给大家,便于大家学习Python、期末备考、巩固基础等(这几期是公众号小插曲,后期发放编程技术的话主要还是会围绕Java来展开,感谢小伙伴们的…...
![](https://www.ngui.cc/images/no-images.jpg)
A562基于android的养老APP
需求信息: 1:家庭信息管理,包括家庭成员基本情况、性别、年龄、关系、工作单位、联系方式(手机号码、微信等); 2:个人健康数据管理,包括姓名、性别、年龄、关系、原工作单位、联系方式(手机号码…...
![](https://img-blog.csdnimg.cn/img_convert/27043b1d759ab08c72e163d174c9d0de.png)
java面试题-并发基础
1.多线程的出现是要解决什么问题的? 本质什么?提高程序性能:单线程程序只能按照固定的顺序依次执行每个任务,无法同时处理多个任务。多线程技术可以在同一时间内执行多个任务,从而提高程序的运行效率和响应速度。提高程序的并发性ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
用纯C语言实现3D空间中的点坐标转化为屏幕二维点坐标,包含主视图、侧视图、俯视图、正等轴投影
要实现3D空间中的点坐标转换为屏幕二维点坐标,需要进行透视变换和投影变换。以下是一些基本的思路和示例代码,可以用于实现主视图、侧视图、俯视图、正等轴投影。 1. 主视图投影 主视图投影是指以一个点作为视点,从一个方向观察物体&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
.sh脚本文件的执行方式
方法1: ./xxx.sh方法2: source xxx.sh方法3: bash xxx.sh方法4: sh xxx.sh初识shell,学习并记录...
![](https://img-blog.csdnimg.cn/2021072514364380.png)
Android 基础知识4-2.5View与VIewGroup的概念、关系与区别
1.概念: Android里的图形界面都是由View和ViewGroup以及他们的子类构成的: View:所有可视化控件的父类,提供组件描绘和时间处理方法 ViewGroup: View类的子类,可以拥有子控件,可以看作是容器 Android UI中的控件都是…...
![](https://www.ngui.cc/images/no-images.jpg)
【ESP 保姆级教程】玩转巴法云篇① ——初识巴法云
忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-02-19 ❤️❤️ 本篇更新记录 2023-02-19 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...
![](https://img-blog.csdnimg.cn/4170c114015940b0acf1c1ab81f42270.png)
Python学习-----模块3.0(正则表达式-->re模块)
目录 前言: 导入模块 1.re.match() 函数 (1)匹配单个字符 (2)匹配多个字符 (3) 匹配开头和结尾 2.re.search() 函数 3.re.findall() 函数 4.re.finditer() 函数 5.re.split() 函数 6.re.sub() 函数 7.re.sub…...
![](https://img-blog.csdnimg.cn/40074eed0a7c47bea384eed43c0deef2.png)
JSP中http与内置对象学习笔记
本博文讲述jsp客户端与服务器端的http、jsp内置对象与控制流和数据流实现 1.HTTP请求响应机制 HTTP协议是TCP/IP协议中的一个应用层协议,用于定义客户端与服务器之间交换数据的过程 1.1 HTTP请求 HTTP请求由请求行、消息报头、空行和请求数据4部分组成。 请求行…...
![](https://img-blog.csdnimg.cn/img_convert/7829dfacca75fa0192455ebd1d2a3e9d.jpeg)
Windows Server 2016远程桌面配置全过程
镜像下载 系统镜像网址 本次下载的是 Windows Server 2016 (Updated Feb 2018) (x64) - DVD (Chinese-Simplified) 远程桌面配置 Step 1 在开始菜单搜索服务,打开服务器管理器,点击右上角的管理按钮 Step 2 添加角色控制,点击下一步 S…...
![](https://img-blog.csdnimg.cn/dbab8b9a9f3f40d99f98d2b4cc289845.png)
SPI通讯简介
一、基本概念 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,主要应用在EEPROM,FLASH,实时时钟,AD转换器,多MCU间通讯等等,SPI端口可以在多主器件…...
![](https://www.ngui.cc/images/no-images.jpg)
Python 迭代器
迭代器协议 对象必须提供一个 next() 方法,执行该方法要么迭代下一项,要么就引起一个 StopIteration异常以终止迭代(只能往后不能往前)—— 迭代器协议 协议是一种约定,可迭代对象实现了迭代器协议(for、…...
![](https://img-blog.csdnimg.cn/63a0588727c34154a238312ecec9a4aa.png)
Python语言零基础入门教程(二十七)
Python OS 文件/目录方法 Python语言零基础入门教程(二十六) 61、Python os.utime() 方法 概述 os.utime() 方法用于设置指定路径文件最后的修改和访问时间。 在Unix,Windows中有效。 语法 utime()方法语法格式如下: os.uti…...
![](https://img-blog.csdnimg.cn/9f5d7dfe5ce340708120b28f4376325d.png)
Redis基础操作以及数据类型
目录 Redis基础操作 java中的i是不是原子操作?不是 数据类型 1. list 2. set 3. Hash哈希 4. Zset有序集合 Redis基础操作 set [key] [value] 设置值 (设置相同的会将原先的覆盖) get [key] 获取值 不能覆盖和替换 ttl [key] 以秒为单…...
![](https://img-blog.csdnimg.cn/331b4831ad574e94be47833c3afc497d.png)
自抗扰控制ADRC之反馈控制律(NLSEF)
目录 前言 1.非线性状态误差反馈控制律(NLSEF) 1.1 控制律形式 1.2 控制量的生成(或者说扰动的补偿) 1.2.1补偿形式① 1.2.1补偿形式② 2.仿真分析 2.1仿真模型 2.2仿真结果 前言 前面的两篇博客依次介绍了TD微分跟踪器安排过渡过程、扩张观测器: 自抗扰…...
![](https://img-blog.csdnimg.cn/8d63494b37e3416fb95c20db6bfe84e7.png)
“生成音乐“ 【循环神经网络】
前言 本文介绍循环神经网络的进阶案例,通过搭建和训练一个模型,来对钢琴的音符进行预测,通过重复调用模型来进而生成一段音乐; 使用到Maestro的钢琴MIDI文件 ,每个文件由不同音符组成,音符用三个量来表示…...
![](https://www.ngui.cc/images/no-images.jpg)
能否手写vue3响应式原理-面试进阶
(二)响应式原理 利用ES6中Proxy作为拦截器,在get时收集依赖,在set时触发依赖,来实现响应式。 (三)手写实现 1、实现Reactive 基于原理,我们可以先写一下测试用例 //reactive.spe…...
![](https://img-blog.csdnimg.cn/3a1a1f19e67746fcaee5afd424dd45db.png)
前端工程师leetcode算法面试必备-简单的二叉树
一、前言 本难度的题目主要考察二叉树的基本概念和操作。 1、基本概念 树是计算机科学中经常用到的一种非线性数据结构,以分层的形式存储数据。二叉树是一种特殊的树结构,每个节点最多有两个子树,通常子树被称作“左子树”和“右子树”。 …...
![](https://www.ngui.cc/images/no-images.jpg)
【什么程度叫熟悉linux系统】
一、编译内核 1、Linux系统背景:Ubuntu 2、内核源码kernel.org进行下载 3、解压内核源文件linux-6.1.12.tar.xz、命令:tar -xvf linux-6.1.12.tar.xz 4、进入解压好的文件inux-6.1.12 5、配置内核命令:make menuconfig(需要进…...
![](https://img-blog.csdnimg.cn/img_convert/2a6ee9a81c1375e4d3214f217c5605bc.png)
编译安装MySQL
MySQL 5.7主要特性 随机root 密码:MySQL 5.7 数据库初始化完成后,会自动生成一个 rootlocalhost 用户,root 用户的密码不为空,而是随机产生一个密码。原生支持:Systemd 更好的性能:对于多核CPU、固态硬盘、…...
![](https://img-blog.csdnimg.cn/d5bd05868bcd4783b4515b0e0c511e68.png)
Kubernetes一 Kubernetes之入门
二 Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应…...
![](https://www.ngui.cc/images/no-images.jpg)
SQLServer2000 断电后数据库suspect“置疑”处理
SQLServer2000 断电后数据库suspect“置疑”处理 背景介绍: 前些天加班时候,接到小舅子微信,说一个客户的winXP 机器上sql2000的数据库在断电重启后,数据库执行命令时提示suspect“置疑”错误。小舅子电子工程师,对数…...
![](https://img-blog.csdnimg.cn/c07da26b9b374f46b55594ae21625ade.png)
多模态机器学习入门Tutorial on MultiModal Machine Learning——第一堂课个人学习内容
文章目录课程记录核心技术Core Technical Challengesrepresentation表示alignment对齐转换translationFusion融合co-learning共同学习总结Course Syllabus教学大纲个人总结第一周的安排相关连接课程记录 这部分是自己看视频,然后截屏,记录下来的这部分的…...
![](https://img-blog.csdnimg.cn/4ff8a9b7f0bb47daae9dbf59460555e1.png#pic_center)
Java ~ Collection/Executor ~ LinkedBlockingDeque【总结】
一 概述 简介 LinkedBlockingDeque(链接阻塞双端队列)类(下文简称链接阻塞双端队列)是BlockingDeqeue(阻塞双端队列)接口的唯一实现类,采用链表的方式实现。链接阻塞双端队列与LinkedBlockingQu…...
![](https://img-blog.csdnimg.cn/img_convert/ec3c85e128a429e74216ad12e500074b.png)
.NET7的AOT的使用
背景其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。最近时总更新太快了,太卷了,所以借着 .NET 7 正式版发布,熬夜写完这篇文章,希望能够追上时总的一点距离。本文主要介绍如何在…...
![](https://images.cnblogs.com/cnblogs_com/vilylei/pa_002.jpg)
网站建设方案书 文库/bt磁力兔子引擎
有时候你得到的图片不是透明的png而是加了黑背景的图(可能是:.jpg,.gif,.png等格式的图) 例如一个粒子效果的图: 多好的粒子效果,可惜它有黑背景。不处理一下,不好用。 经过移除黑背景处理为png后,变为: 这时候这个效果图片就可以方便的使用了…...
![](/images/no-images.jpg)
wordpress4.3下载/网站模板之家免费下载
概念 IOC(Inversion of Control) 其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也…...
![](/images/no-images.jpg)
如何查询网站备案信息/中囯联通腾迅
本月合计、本年累计...
![](/images/no-images.jpg)
wordpress导航加tu/百度网站排名
看见运算,就检查整数溢出。 看见拷贝,就检查越界。 看到字符串输入,就检查各种注入。 看到打印信息,就检查格式话攻击。 看到文件输入,就检查路径利用。 看到加密算法,就检查是否安全。 看到开源代码&#…...
![](/images/no-images.jpg)
价格优化网站建设/最近最新的新闻
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼程序同上,重发一遍加了注释,改变了输出结果的顺序--------------------------------------------------------------------------------------------------#include /*递归排序*/void mysort(const int number, int *numlist, cons…...
![](https://img2018.cnblogs.com/blog/1222443/201901/1222443-20190119112123130-1744326230.png)
有什么网站做任务换q币吗/游戏推广赚佣金
此教程是博主亲自帮朋友管理服务器所操作的完整步骤,当然此步骤适合所有的linux-centos系统,不管centos怎么变,linux怎么变,它的这些命令可以说是基本不变的;先说一下博主此教程所用的服务器的环境: 操作系…...