理解 Redis(9) - Publish Subscribe 消息订阅

在窗口1开通一个名为 redis 的通道:

127.0.0.1:6379> SUBSCRIBE redis
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redis"
3) (integer) 1

从窗口2传入信息:

127.0.0.1:6379> PUBLISH redis hi
(integer) 1

此时窗口1会收到这条信息:

127.0.0.1:6379> SUBSCRIBE redis
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redis"
3) (integer) 1
1) "message"
2) "redis"
3) "hi"

以上, 就是通过 SUBSCRIBE 和 PUBLISH 实现了一个简单的消息传递的过程. 目前我们是有一个窗口开通 redis 通道, 另一个窗口向这个通道传递消息, 大家可以试下再多开一个窗口, 也开通 redis 通道, 然后再向 redis 通道传递消息的时候, 会发现, 这两个通道会同时接收到这条消息.

下面再另开也别窗口, 演示另外一个命令. 这里用命令 PSUBSCRIBE 开通一个通道, 通道名不是具体的, 而是有点像正则匹配, 即凡是向以字母 r 开头的通道发送消息, 这个通道都可以接收:

127.0.0.1:6379> PSUBSCRIBE r*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "r*"
3) (integer) 1

这时, 在另外一个窗口执行:

127.0.0.1:6379> PUBLISH rr "hi"
(integer) 1

这时, 在刚刚开通通道的窗口就可以接收到信息:

127.0.0.1:6379> PSUBSCRIBE r*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "r*"
3) (integer) 1
1) "pmessage"
2) "r*"
3) "rr"
4) "hi"

以上, 就是关于 SUBSCRIBE 和 PUBLISH 的基本原理.

这是关于 redis 学习的最后一篇,  每个命令我都有自己实践, 虽然不能百分百记住, 但是对于五种数据类型, 有了非常清晰的了解, 希望也能对你有所帮助, enjoy~~~

原文地址:https://www.cnblogs.com/rachelross/p/10412110.html

时间: 2024-10-07 03:01:41

理解 Redis(9) - Publish Subscribe 消息订阅的相关文章

python redis 实现简单的消息订阅

python + redis 实现简单的消息订阅 订阅端 import redis from functools import wraps class Subscribe: def __init__(self, channel: str, **kwargs): self.coon = redis.StrictRedis(**kwargs) self.channel = channel self.registerd = list() self.course = self.coon.pubsub()

【02】Redis for OPS:消息订阅和事务管理

写在前面的话 上一节谈了 Redis 的安装以及五种基本数据类型的一些简单的操作,本章节主要看看 Redis 的另外一些特征,虽然可能不常用,但是还是需要了解的.对于我们运维人员来讲,这些东西更像拓展的知识,可能我们工作很多年都不会用到,但是当你慢慢的需要往运维开发方向发展以后,这些东西就会成为你解决问题的又一方案.另外一种思路. 发布订阅 Redis 发布消息一般有两种方式,消息队列和发布订阅. 对于消息队列,其角色包含:生产者 --> 消息队列 --> 消费者 生产者讲需要处理的任务放到队

[8] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之SUBSCRIBE(消息订阅)消息分析

0.前言 我们在上几节的协议分析中,发送连接的请求用的是Eclipse Paho MQTT工具,那么笔者这一次改一下,咱们这次用代码来发送Subscribe的MQTT消息,请注意,下面的代码是基于Eclipse Paho Java API之上的代码,在运行下面的代码前,请先去下载Eclipse Paho Java库,其下载地址为:https://www.eclipse.org/paho/clients/java/. 下面我们正式切入正题. 1.准备步骤 (1) 首先打开WireShark软件,并

3.6.4 RabbitMQ教程四 - Publish/Subscribe

Publish/Subscribe发布/订阅 What This Tutorial Focuses On In the previous tutorial we created a work queue. The assumption behind a work queue is that each task is delivered to exactly one worker. In this part we'll do something completely different -- we

[9] MQTT,mosquitto,Eclipse Paho---MQTT消息格式之SUBACK(消息订阅应答)消息分析

0.前言 在上一节中(MQTT消息格式之SUBSCRIBE(消息订阅)消息分析),客户端发送了订阅的消息,这个时候,服务器端收到订阅主题的MQTT消息之后,肯定需要给一个应答,这个应答信息就是SUBACK(消息订阅应答).消息订阅应答相对来说比较简单. 1.准备步骤 (1) 首先打开WireShark软件,并启动监听 (2) 在Eclipse里面运行下面的代码 [java] view plaincopy import org.eclipse.paho.client.mqttv3.MqttClie

NATS学习 -- 概念学习之消息(Message)与发布订阅(Publish Subscribe)

1 理论篇 1.1 来自官方的介绍 NATS acts as a central nervous system for distributed systems such as mobile devices, IoT networks, enterprise microservices and cloud native infrastructure. Unlike traditional enterprise messaging systems, NATS provides an always o

消息队列 RabbitMQ系列 第四篇:发布/订阅 Publish/Subscribe

上篇中我们实现了Work Queue的创建,在Work Queue背后,其实是rabbitMQ把每条任务消息只发给一个消费者.本篇中我们将要研究如何把一条消息推送给多个消费者,这种模式被称为publish/subscribe(发布/订阅). 为了说明这个模式,我们将会构建一个简单的日志系统.这将会包含两部分程序,第一个是发送日志信息,第二个将会接收并打印它们. 在我们的日志系统里,每个运行的消费者程序都能接收到消息.这样我就运行一个receiver并把日志写到磁盘上,同时我们再运行另外一个消费者

React:消息订阅(subscribe)-发布(publish)机制

使用消息订阅(subscribe)-发布(publish)机制 发布类似触发事件 订阅类似监听事件 使用这种方式的好处是,兄弟组件间通信不必再像使用props那种通过父组件来通信,多层组件之间通信也不必在一层一层的传递, 直接在触发事件的组件中一个发布消息 监听组件中订阅消息即可: 1) 工具库: PubSubJS 2) 下载: npm install pubsub-js --save 3) 使用: import PubSub from 'pubsub-js' //引入 PubSub.publi

jedis的publish/subscribe[转]含有redis源码解析

首先使用redis客户端来进行publish与subscribe的功能是否能够正常运行. 打开redis服务器 [[email protected] ~]# redis-server /opt/redis-2.4.10/redis.conf [7719] 16 Apr 11:37:22 # Warning: 32 bit instance detected but no memory limit set. Setting 3.5 GB maxmemory limit with 'noevicti