Redis消息订阅发布

article/2025/9/11 9:22:12

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

redis客户端可以订阅任意数量的频道

消息发送者

频道

消息接收者

 redis频道 channel1 以及订阅这个频道的客户端client2 ; client5 ; client1 之间的关系

 当有新消息通过PUBLISH 命令发送给频道channel1 时,这个消息就会被发送给订阅他的三个客户端

 

redis发布订阅命令

可以构建即时通讯,网络聊天室,实时广播,时时提醒等

 订阅频道-- SUBSCRIBE "频道"

 发送消息--PUBLISH 频道 "消息"

 原理

Redis是使用C实现的,通过分析Redis源码里面的pubsub.c文件,了解发布和订阅机制的底层实现,即此加深对Redis的理解。

Redis通过 PUBLISH、SUBSCRIBE 和 PSUBSCRIBE 等命令实现发布和订阅功能。

通过 SUBSCRIBE 命令订阅某频道后,redis-server 里维护一个字典,字典的键就是一个个channel,而字典的值则是一个链表,链表中保存了所有订阅这个channel的客户端。SUBSCRIBE命令的关键,就是将客户端添加到给定 channel 的订阅链表中。

 

通过 PUBLISH 命令向订阅者发送消息,redis-server 会使用给定的频道作为键,在它所维护的 channel 字典中查找记录了订阅这个频道的所有客户端的链表,遍历这个链表,将消息发布给所有订阅者。

Pub/Sub 从字面上理解就是发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。

使用场景 :

1.实时消息系统

2.实时聊天(频道当做聊天室,回显给其他人即可)

3.订阅,关注


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

相关文章

Redis:发布订阅机制

参考资料: 《Redis进阶——发布订阅详解》 《Redis 发布订阅》 《Redis进阶 - 消息传递:发布订阅模式详解》 写在开头:本文为学习后的总结,可能有不到位的地方,错误的地方,欢迎各位指正。 目录 一、什…

redis发布订阅

目录 一、概要 二、特点 三、发布及订阅功能 四、Redis发布订阅命令 五、php实现redis发布-订阅 1、消息发布端 2、消息订阅端 六、订阅发布使用场景 七、在订阅时遇到错误 八、模式匹配(正则匹配)订阅 一、概要 Redis发布订阅(pub/sub)是一种…

springboot 整合使用redis发布订阅功能

前言 发布订阅作为一种设计思想在很多开源组件中都有体现,比如大家熟知的消息中间件等,可谓把发布订阅这一思想体现的淋漓尽致了; 一、redis发布订阅简介 Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收信息。可以参考下面两张图进…

Redis进阶——发布订阅详解

什么是发布订阅? Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 的 subscribe 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发…

Redis 的发布与订阅

3、Redis 的发布与订阅 3.1、发布与订阅简述 Redis提供了基于“发布/订阅”模式的消息机制。此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel) 发布消息,订阅该频道的每个客户端都可…

6. Redis 发布与订阅

文章目录 6. Redis 发布与订阅为什么需要发布、订阅发布/订阅如何使用? :one:基于频道发布SUBSCRIBE:频道订阅PUBLISH:向频道发送消息UNSUBSCRIBE:退订频道 :two: 基于模式(pattern)的发布/订阅PSUBSCRIBE:模式订阅PUB…

Redis的发布订阅

Redis的发布订阅(pub/sub)是一种消息通信模式,发送者(pub)发送信息,订阅者(sub)接收信息。Redis客户端可以订阅任意数量的频道。Pub/Sub 从字面上理解就是发布(Publish&a…

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

一、实验目的 了解Redis数据库的发布与订阅 二、发布与订阅 1.1什么是发布和订阅 发布订阅是一对多的关系,需要有信息的发布者和消息的收听者。 发布者:提供某个内容或主题,把内容信息发送给多个对此内容感兴趣的订阅者 订阅者&#xff…

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、点击左下角的【开始】,找到运行,或是直接…