广告
返回顶部
首页 > 资讯 > 数据库 >Redis发布订阅实例分析
  • 731
分享到

Redis发布订阅实例分析

redis 2022-10-19 03:10:02 731人浏览 薄情痞子
摘要

这篇文章主要介绍了Redis发布订阅实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis发布订阅实例分析文章都会有所收获,下面我们一起来看看吧。Redis 发布订阅

这篇文章主要介绍了Redis发布订阅实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis发布订阅实例分析文章都会有所收获,下面我们一起来看看吧。

Redis发布订阅实例分析

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

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

订阅/发布消息图:

第一个对象:消息发送者。第二个对象:频道。第三个对象:消息订阅者。

Redis发布订阅实例分析

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

Redis发布订阅实例分析

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

Redis发布订阅实例分析

命令描述
Publish channel message 命令将信息发送到指定的频道。
SUBSCRIBE channel [channel …]订阅给定的一个或多个频道的信息。
UNSUBSCRIBE channel [channel …]指退订给定的频道。
[PUNSUBSCRIBE pattern [pattern …]]退订所有给定模式的频道。
[PUBSUB argument [argument …]查看订阅与发布系统状态。
PSUBSCRIBE pattern [pattern …]订阅一个或多个符合给定模式的频道。

测试

订阅端:

127.0.0.1:6379> subscribe mianbao 			# 订阅频道 mianbao
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mianbao"
3) (integer) 1
# 等待读取推送的消息
1) "message"		# 消息
2) "mianbao"		# 频道
3) "hello"			# 消息内容
1) "message"
2) "mianbao"
3) "hello redis"

发送端:

127.0.0.1:6379> publish mianbao "hello"			# 发送消息到频道		
(integer) 1
127.0.0.1:6379> publish mianbao "hello redis"
(integer) 1
原理:

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值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。

关于“Redis发布订阅实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Redis发布订阅实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Redis发布订阅实例分析

本文链接: https://www.lsjlt.com/news/73537.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis发布订阅实例分析
    这篇文章主要介绍了Redis发布订阅实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Redis发布订阅实例分析文章都会有所收获,下面我们一起来看看吧。Redis 发布订阅...
    99+
    2022-10-19
    redis
  • Redis发布/订阅模式实例分析
    这篇文章主要讲解了“Redis发布/订阅模式实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis发布/订阅模式实例分析”吧!Redis发布/订阅应用发布订阅(pub/sub)是一...
    99+
    2023-06-27
  • Redis实现消息的发布订阅原理分析
    目录一、什么是发布和订阅二、Redis的发布和订阅三、redis 发布订阅常用命令四、命令实战1、基本使用2、订阅符合要求的频道3、查看活跃频道五、发布订阅原理1、订阅频道原理2、发布信息原理3、退订信息原理一、什么是发...
    99+
    2022-07-25
    Redis消息发布 Redis消息订阅
  • redis的发布订阅
    简介 进程间的消息通信模式: 发送者(pub)发送消息,订阅者(sub)接收消息 示例,订阅多个 127.0.0.1:8686[1]> SUBSCRIBE c1 c2 c3 Reading messages... (press C...
    99+
    2020-06-08
    redis的发布订阅
  • JAVA 实现 Redis 发布订阅
    Redis 发布订阅 发布订阅:消息发布者发布消息 和 消息订阅者接收消息,两者之间通过某种媒介联系起来 例如订杂志,当自己订阅了爱格杂志,每个月会发刊一本。到发布的时候派送员将杂志送到自己手上就能看到杂志内容。只有我们订阅了该杂志才会...
    99+
    2023-08-18
    redis java 缓存
  • Redis 发布订阅模型
    RedisServer包含两个重要的结构: 1. channels:实际上就是一个key-value的Map结构,key为订阅地频道,value为Client的List 2. patte...
    99+
    2022-10-18
    模型 客户端 channels
  • Redis之发布与订阅
    订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型。redis将信息类型称为通道(channel)。当发布者通过publish命令向redis se...
    99+
    2022-10-18
    redis 发布 订阅
  • 利用Redis实现分布式消息发布订阅
    利用Redis实现分布式消息发布订阅在分布式系统中,消息的发布和订阅是常用的通信模式。在这个模式下,消息发布者将消息发送给一个或多个主题,订阅者则订阅感兴趣的主题,并接收相应的消息。为了实现这个模式,我们可以借助Redis这个高性能的内存数...
    99+
    2023-11-07
    分布式 redis 消息订阅
  • js中发布订阅模式的示例分析
    这篇文章主要介绍js中发布订阅模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码//发布订阅模式 class EventEmiter{   ...
    99+
    2022-10-19
    js
  • redis发布订阅功能怎么实现
    redis发布订阅功能怎么实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Redis 发布订阅(pub/sub)是一种消息通信模式:发送...
    99+
    2022-10-18
    redis 发布订阅 edi
  • Redis系列(八):发布与订阅
    Redis的发布与订阅,有点类似于消息队列,发送者往频道发送消息,频道的订阅者接收消息。 1. 发布与订阅示例 首先,在本机开启第1个Redis客户端,执行如下命令订阅blog.redis频道: SUBSCRIBE "blog.r...
    99+
    2015-06-07
    Redis系列(八):发布与订阅
  • redis怎么进行发布订阅
    redis进行发布订阅的方法:代码:public void publish(String topic ,String messge){Jedis jedis = null;if (StringUtils.isBlank(topic)){to...
    99+
    2022-10-25
    redis
  • js中发布者订阅者模式的示例分析
    这篇文章主要为大家展示了“js中发布者订阅者模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中发布者订阅者模式的示例分析”这篇文章吧。发布者订阅...
    99+
    2022-10-19
    js
  • 如何利用Redis实现分布式消息发布与订阅
    如何利用Redis实现分布式消息发布与订阅引言:在分布式系统中,消息发布与订阅是一种常见的通信模式,可以实现不同模块之间的解耦。Redis作为一种高性能的键值对存储系统,可以用来实现分布式消息发布与订阅功能。本文将介绍如何使用Redis来实...
    99+
    2023-11-07
    分布式 redis 消息发布
  • node.js 发布订阅模式的实例
    实例如下: //导入内置模块 let EventEmitter = require('events'); let util=require('util'); //Man继承EventEmitter ut...
    99+
    2022-06-04
    实例 模式 node
  • Spring boot+redis实现消息发布与订阅
    一.创建spring boot项目 org.springframework.boot spring-boot-starter-data-redis ...
    99+
    2017-09-29
    Spring boot+redis实现消息发布与订阅
  • Docker Compose+Nestjs构建Dapr Redis发布订阅分布式应用
    目录Dapr(分布式应用程序运行时)介绍实战 Dapr 的 Redis 发布/订阅应用1. 创建项目2. 创建 Dapr Placement 服务3. 创建 Redis Publis...
    99+
    2022-11-13
    Docker Nestjs构建Redis分布式 Dapr Redis发布订阅分布式应用
  • SpringBoot+Redis实现消息的发布与订阅的示例代码
    目录1.什么是redis的发布与订阅2.Redis发布订阅3.命令行实现功能订阅主题模式匹配订阅发布消息取消订阅测试4.SpringBoot实现功能Springboot整合Redis...
    99+
    2022-11-13
    SpringBoot Redis消息发布吗 SpringBoot Redis消息订阅
  • Python操作redis的订阅发布功能
    安装redis-serveryum -y install gcc gcc-c++    #安装编译工具cd /optwget -c http://download.redis.io/releases/redis-3.0.5.tar.gz  ...
    99+
    2023-01-31
    操作 功能 Python
  • redis的发布订阅功能是什么
    redis的发布订阅功能是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。        &nb...
    99+
    2022-10-18
    redis edi %d
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作