Redis7【④ Redis 发布 订阅】

Redis发布和订阅

本章了解即可,命令可以不用敲。
在这里插入图片描述

Redis 发布和订阅(Publish/Subscribe,简称 Pub/Sub)是一种消息传递模式,用于在 Redis 中实现消息的发布和订阅。

在 Redis 中,发布者(Publisher)可以将消息发送到一个或多个频道(Channel),订阅者(Subscriber)可以订阅一个或多个频道,以接收发布者发送的消息。当发布者在某个频道上发布一条消息时,所有订阅该频道的订阅者都会收到这条消息。

Redis Pub/Sub 是基于消息传递的异步通信模型,可以用于构建实时系统、聊天室、实时广播等应用场景。


1. 常用命令

1.1 SUBSCRIBE

SUBSCRIBE channel [channel ...]:订阅一个或多个频道

一旦客户进入了订阅状态,客户端就只能接受订阅相关的命令SUBSCRIBE、PSUBSCRIBE、UNSUBSCRIBE和PUNSUBSCRIBE,除了这些命令,其他命令一律失效。按Ctrl+C结束订阅状态。

返回值:发布类型、频道名称、第几个频道

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vibDxXJu-1687939622643)(img/2023-04-13_215044.png)]

1.2 PUBLISH

PUBLISH channel message:发布消息到指定频道。

返回值为收到消息的客户端数量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-omthhZgV-1687939622644)(img/2023-04-13_221127.png)]

1.3 PSUBSCRIBE

PSUBSCRIBE pattern [pattern ...]:按照匹配模式批量订阅。

支持的模式有:?表示任意一个字符;*表示任意数量的任意字符;[]表示中括号中的指定字符。比如:
h?llo:可以匹配hallo、hbllo、hello…
h*llo:可以匹配hello、heeello、habcdello…
h[abc]llo:只能匹配hallo、hbllo、hcllo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgkzdVSG-1687939622644)(img/2023-04-13_224853.png)]

1.4 PUBSUB

PUBSUB 是自省命令,能够检测PUB/SUB子系统的状态。

PUBSUB CHANNELS [pattern] :返回当前活跃的频道。

只会统计使用SUBSCRIBE订阅的频道。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ay7I8RLR-1687939622644)(img/2023-04-13_230814.png)]

PUBSUB NUMSUB channel [channel ...]:返回指定频道订阅者的个数。

只会统计使用SUBSCRIBE订阅的订阅者个数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ufC1MKAE-1687939622644)(img/2023-04-13_231329.png)]

PUBSUB UNMPAT:返回订阅模式(PSUBSCRIBE)的数量。

这个命令返回的不是订阅模式的订阅者数量, 而是所有Redis客户端(订阅者)订阅的所有模式的数量总和。

127.0.0.1:6379> PUBSUB NUMPAT
(integer) 2		# 包括了客户端1,客户端2,客户端3的订阅模式的数量

1.5 UNSUBSCRIBE

UNSUBSCRIBE channel [channel ...]:指示客户端退订指定频道,若没有指定频道则退订所有频道。

127.0.0.1:6379> UNSUBSCRIBE c2	# 退定频道c1
1) "unsubscribe"
2) "c1"
3) (integer) 0
127.0.0.1:6379> UNSUBSCRIBE		# 退订所有频道
1) "unsubscribe"
2) (nil)
3) (integer) 0

1.6 PUNSUBSCRIBE

PUNSUBSCRIBE pattern [pattern ...]:指示客户端退订指定模式,若没有提供模式则退定所有模式。

127.0.0.1:6379> PUNSUBSCRIBE c*		# 退定订阅模式c*
1) "punsubscribe"
2) "c*"
3) (integer) 0
127.0.0.1:6379> PUNSUBSCRIBE		# 退订所有订阅模式
1) "punsubscribe"
2) (nil)
3) (integer) 0

2. 小总结

  • 发布的消息在Redis系统不能持久化,因此必须先执行订阅,再等待消息发布,如果先发布了消息且该消息没有订阅者接收,那么该消息被直接丢弃。
  • 消息只管发送,对于发布者而言消息是即发即失的,也没有ACK机制,无法保证消息是否消费成功。
  • Redis5.0新增了Stream数据结构,不但支持多播,还支持数据持久化,比Pub/Sub更加强大。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高通9x07平台关于模块modem射频 RF MCFG生成MBN的总结

1.1: cefs(efs2.mbn)制作步骤:1.擦擦CEFS分区;2.导入HW_MBN,并激活;3.导入静态NV;4.生成CEFS; 1.2:激活hw_default mbn后,/policyman/目录下device_config.xml必需保留; 1.3&#xf…

Vision Transformer

论文名称: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 一、Patch Embedding模块 class PatchEmbed(nn.Module): # 对应Patch Embedding模块def __init__(self, img_size224, patch_size16, in_c3, embed_dim768, norm_layerNone…

实现一个转盘随机选择器

实现效果 完整代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title><…

Midjourney如何用参考图/垫图来绘画图

大家都知道AI绘画工具每次生成的效果都是随机的&#xff0c;但是现在很多AI绘图工具都提供了利用参考图/垫图的方式出图&#xff0c;这样就可以让让AI画作生成自己想要的布局、场景、色彩等等。 国内的AI绘图工具一般都好操作&#xff0c;国外主流的Midjourney也可以添加参考图…

DataV图表-排名轮播表自定义

DataV图表-排名轮播表自定义数据大屏可视化 场景&#xff1a;需要计算根据分数不同柱子的颜色不同 低于60分变成为橙色柱子 一开始使用的是 dv-scroll-ranking-board 这个不可以自定义颜色和属性 我们可以更改 dv-scroll-board 样式来实现 排名轮播表 安装 data-view npm ins…

2023年最新互联网Java面试八股文出炉(附大厂P5-P8技术栈)

为什么感觉 Java 面试变难了&#xff1f; 几年前&#xff0c;你只需要简单的ssm框架&#xff0c;就能轻松找到一份Java的工作&#xff0c;但现在不一样了&#xff0c;随着涌入这个行业的人越来越多&#xff0c;同一个岗位需要筛选掉更多人&#xff0c;要求自然水涨船高&#x…

短视频------Adobe Photoshop 笔记总结

一、Adobe Photoshop 使用方式方法 ctrlc/v 复制 粘贴 ctrlx 剪切 ctrla 全选 ctrlz撤销 ctrls保存 ENTER 回车 换行 CTRL 调取定界框 CAPSLOCK 大写锁定 Esc 退出 Delete 删除 Backspace 退格 Ctrl shi alt 三个控制键 Shi 连选 ctrl 加选/减选 锁屏 WinL 打开运行命令窗口 …

WLAN的Roaming机制和案例log解析

一 、WLAN漫游简介 [百度百科]:当网络环境存在多个相同SSID的AP,且它们的微单元互相有一定范围的重合时,无线用户可以在整个WLAN覆盖区内移动,无线网卡能够自动发现附近信号强度最大的AP,并通过这个AP收发数据,保持不间断的网络连接,这就称为无线漫游。 简单来说:WLA…

【SpringCloud config分布式配置中心】—— 每天一点小知识

&#x1f4a7; S p r i n g C l o u d c o n f i g 分布式配置中心 \color{#FF1493}{SpringCloud config分布式配置中心} SpringCloudconfig分布式配置中心&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的…

【Spring Cloud系列】-Eureka服务端高可用详解

【Spring Cloud系列】-Eureka服务端高可用详解 文章目录 【Spring Cloud系列】-Eureka服务端高可用详解一. 序言二. 什么是高可用性三. 什么是CAP一致性&#xff08;Consistency&#xff09;可用性&#xff08;Availability&#xff09;分区容错&#xff08;Partition-toleranc…

Lowe‘s EDI 项目数据库方案开源介绍

近期为了帮助广大用户更好地使用 EDI 系统&#xff0c;我们根据以往的项目实施经验&#xff0c;将成熟的 EDI 项目进行开源。用户安装好知行之桥EDI系统之后&#xff0c;只需要下载我们整理好的示例代码&#xff0c;并放置在知行之桥指定的工作区中&#xff0c;即可开始使用。 …

使用cloc软件对项目的代码行数进行统计

1、下载cloc https://github.com/AlDanial/cloc/releases 进入之后选择exe进行下载。 2、下载之后随意放在任意文件夹下&#xff0c;并修改命名为cloc.exe 3、然后设置该目录为环境变量 4、在需要统计代码行数的目录&#xff0c;shift右键&#xff0c;打开Powershell窗口 5、输…

多元回归预测 | Matlab麻雀算法(SSA)优化极限学习机ELM回归,SSA-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab麻雀算法(SSA)优化极限学习机ELM回归,SSA-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变…

认识 SpringCloud 核心组件

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…

Spring Resources资源操作

文章目录 1、Spring Resources概述2、Resource接口3、Resource的实现类3.1、UrlResource访问网络资源3.2、ClassPathResource 访问类路径下资源3.3、FileSystemResource 访问文件系统资源3.4、ServletContextResource3.5、InputStreamResource3.6、ByteArrayResource 4、Resour…

PyGame游戏编程

Python非常受欢迎的一个原因是它的应用领域非常广泛&#xff0c;其中就包括游戏开发。而是用Python进行游戏开发的首选模块就是PyGame。 1. 初识Pygame PyGame是跨平台Python模块&#xff0c;专为电子游戏设计&#xff0c;包含图像、声音等&#xff0c;创建在SDL&#xff08;…

DAY31——贪心

1.分发饼干 class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int start 0;int count 0;for (int i 0; i < s.length && start < g.length; i) {if (s[i] > g[start]) {start;count;}}return count;} } …

本地离线安装SeleniumIDE(Chrome)

一、插件下载 现需要准备一台可以连接外网的电脑&#xff0c;由于受到chrome的限制&#xff0c;我们可以选择搭梯子进行直接安装相应插件&#xff0c;但考虑到部分新手不会翻墙&#xff0c;本次提供一个不需翻墙的方法。 进入https://www.crx4chrome.com/crx/181591/网页内&…

SpringBoot项目-双人对战五子棋实验报告

简单五子棋Web项目报告 课 程 Web应用程序设计 项目名称 简单双人五子棋对战 成绩 专业班级 XXX 组别 无 学号 XXX 指导教师 XXX 姓 名 XXX 同组人姓名 无 完成日期 XXX 功能描述 1.用户的注册及登录功能 玩家可以在完成游戏账户的注册&#xff0c…

PADS VX 网络飞线的隐藏与关闭

如何设置隐藏和关闭网络飞线&#xff1f; 以隐藏和关闭GND网络飞线为例。网络飞线的隐藏&#xff1a;界面不会显示飞线&#xff0c;但移动器件时会显示。打开PADS layout&#xff0c;点击“查看”→“网络”&#xff08;快捷方式“CtrlAltN”&#xff09;&#xff0c;在弹出的…