IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis发布与订阅 -> 正文阅读

[大数据]Redis发布与订阅

订阅与发布

1、简介

订阅与发布是redis中的一种消息通信模式,主要分为两大角色:发布者订阅者,在发布者和订阅者之间需要一个通道,也叫频道。

发布者(pub):主要用来发送消息.
订阅者(sub);主要订阅发布者发布的消息.
通道(channel):主要用来传送消息.

在这里插入图片描述

其中发布者可以发送多次消息,订阅者可以订阅多个频道.

2、实例

前提需要开启两个redis

# 订阅者sub

# 连接进入redis   基于docker
[root@itbestboy ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS       PORTS                      NAMES
     17e755da11bf   redis:5.0.14          "docker-entrypoint.s…"   6 weeks ago   Up 4 days    6379/tcp                                                                                                 # 进入redis
[root@itbestboy ~]# docker exec -it 17e /bin/bash
#进入客户端
root@17e755da11bf:/data# redis-cli
#检查是否可以正常启动
127.0.0.1:6379> ping 
PONG
# 订阅频道a
127.0.0.1:6379> SUBSCRIBE a
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "a"
3) (integer) 1
#在开一个redis,用作发布者发送消息
127.0.0.1:6379> PUBLISH a hello
(integer) 1
127.0.0.1:6379> 

# 发送完之后  订阅者就可以以立刻接受到消息
127.0.0.1:6379> SUBSCRIBE a
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "a"
3) (integer) 1
1) "message"
2) "a"
3) "hello"

#查看订阅者和发布者的状态信息
127.0.0.1:6379> PUBSUB help
1) PUBSUB <subcommand> arg arg ... arg. Subcommands are:
2) CHANNELS [<pattern>] -- Return the currently active channels matching a pattern (default: all).
3) NUMPAT -- Return number of subscriptions to patterns.
4) NUMSUB [channel-1 .. channel-N] -- Returns the number of subscribers for the specified channels (excluding patterns, default: none).
127.0.0.1:6379> PUBSUB channels
1) "a"
# 其中可以查看的状态包括三个,分别是   频道    模式数 订阅者数量

# 订阅者退出订阅
127.0.0.1:6379> UNSUBSCRIBE a
1) "unsubscribe"
2) "a"
3) (integer) 0

在发布订阅中大致包括如下命令

3、常见命令

3.1、Subscribe

用于订阅给定的一个或多个频道的信息,会进入阻塞状态,知道发布者发送消息

语法

SUBSCRIBE channel [channel ...]
#一个订阅者可以订阅多个频道

3.2、Psubscribe

订阅一个或多个符合给定模式的频道,会进入阻塞状态,知道发布者发送消息

语法:

PSUBSCRIBE pattern [pattern ...]
#每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( itbestboy 、 it.blog  等等)

3.3、 Publish

用于将信息发送到指定的频道

语法:

PUBLISH channel message

3.4、Unsubscribe

用于退订给定的一个或多个频道的信息

语法:

UNSUBSCRIBE channel [channel ...]

3.5、Punsubscribe

用于退订所有给定模式的频道

语法:

PUNSUBSCRIBE [pattern [pattern ...]]

3.6、Pubsub

令用于查看订阅与发布系统状态.

语法:

PUBSUB <subcommand> [argument [argument ...]]
# 若不知道怎么使用可以使用命令   pubsub help
  127.0.0.1:6379> PUBSUB help
1) PUBSUB <subcommand> arg arg ... arg. Subcommands are:
2) CHANNELS [<pattern>] -- Return the currently active channels matching a pattern (default: all).
3) NUMPAT -- Return number of subscriptions to patterns.
4) NUMSUB [channel-1 .. channel-N] -- Returns the number of subscribers for the specified channels (excluding patterns, default: none).


channels:列出全部活跃的channel或者符合pattern的channel
              channel活跃指:至少有一个订阅者。
             返回值:活跃channel名称
             
  NUMPAT:获取channel模板个数
 
  NUMSUB:获取指定channel的订阅个数。如果不指定channel,返回空
                   返回值:订阅指定channel的数量(活跃的).输入channel模式为0
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-04 00:01:46  更:2022-06-04 00:02:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:21:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码