文章目录

  • 6. Redis 发布与订阅
      • 为什么需要发布、订阅
      • 发布/订阅如何使用?
    • :one:基于频道发布
      • SUBSCRIBE:频道订阅
      • PUBLISH:向频道发送消息
      • UNSUBSCRIBE:退订频道
    • :two: 基于模式(pattern)的发布/订阅
      • PSUBSCRIBE:模式订阅
      • PUBLISH:模式发布
      • PUNSUBSCRIBE:退订模式
      • 查看被订阅的频道
      • 查看频道的订阅者数量
      • 查看被订阅模式的总数量
    • :three: 使用注意

6. Redis 发布与订阅

参考地址:https://blog.csdn.net/w15558056319/article/details/121490953

Redis的发布与订阅功能可以让客户端通过广播方式,将 消息(message)同时发送给可能存在的多个客户端,并且发送消息的客户端不需要知道接收消息的客户端的具体信息。换句话说,发布消息的客户端与接收消息的客户端两者之间没有直接联系。

在Redis中,客户端可以通过订阅特定的 频道(channel)来接收发送至该频道的消息,我们把这些订阅频道的客户端称为订阅者(subscriber)。一个频道可以有任意多个订阅者,而一个订阅者也可以同时订阅任意多个频道。除此之外,客户端还可以通过向频道发送消息的方式,将消息发送给频道的所有订阅者,我们把这些发送消息的客户端称为发送者(publisher)。

发布订阅的实现场景

1、实时沟通消息系统

2、微信公众号(点击关注,后台发送一篇博客,订阅的用户就可以监听到)

3、电商中,用户下单成功之后向指定频道发送消息,下游业务订阅支付结果这个频道处理自己相关业务逻辑

4、粉丝关注功能、文章推送

还有一些比较复杂的场景,可以使用消息中间件来做,kafka RabbitMQ ActiveMQ RocketMQ …等

示例:

有三个客户端订阅了一个 Channel1

当 Channel1 的后台发送了一个数据到 Channel1 的频道中,这三个订阅了 Channel1 的客户端就会同时收到这个数据

为什么需要发布、订阅

redisList 数据类型结构提供了 blpop 、brpop 命令结合 rpush、lpush 命令可以实现消息队列机制,基于双端链表实现的发布与订阅功能

  • 这种方式存在两个局限性:
  1. 不能支持一对多的消息分发。
  2. 如果生产者生成的速度远远大于消费者消费的速度,易堆积大量未消费的消息

6. Redis 发布与订阅相关推荐

  1. Redis发布与订阅(pub/sub)

    Redis发布与订阅(pub/sub) 本文档翻译自: http://redis.io/topics/pubsub . SUBSCRIBE . UNSUBSCRIBE 和 PUBLISH 三个命令实现 ...

  2. Redis发布和订阅

    一.什么是Redis发布和订阅 Redis的发布(pub)和订阅(sub)是一种消息通信模式.它包含有三个角色分别是:发送者.订阅者.频道. Redis客户端可以订阅多个任意的频道. Redis发布和 ...

  3. Redis 发布和订阅

    Redis 发布和订阅 什么是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息. Redis 客户端可以订阅任意数量 ...

  4. redis发布与订阅消息

    2019独角兽企业重金招聘Python工程师标准>>> Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客 ...

  5. Redis发布与订阅——PUBLISH SUBSCRIBE

    2019独角兽企业重金招聘Python工程师标准>>> Redis发布与订阅--PUBLISH  & SUBSCRIBE 一般来说,发布与订阅(又称pub/sub)的特点是 ...

  6. redis发布与订阅

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 以下实例演示了发布订阅是如何工作的.在我们实 ...

  7. redis 发布和订阅 持久化 事务 缓存问题

    redis的发布订阅 使用数据类型lists 原理 可以有多个消费者和订阅者 订阅者:subscribe cla 命令 执行成功后 subscribe :表示成功订阅到响应 第二个元素:提供的频道 第 ...

  8. redis 发布与订阅

    一.简介 Redis提供了发布订阅功能,可以用于消息的传输 Redis的发布订阅机制包括三个部分,publisher,subscriber和Channel 发布者和订阅者都是Redis客户端,Chan ...

  9. Redis发布与订阅模式

    Redis的Pub/Sub实现了发布/订阅消息范式,发布者将消息发布到不同的频道,订阅者订阅感兴趣的频道消息,而不需要关心是谁在发布.这种发布者和订阅者的解耦合方式可以极大的扩展的扩展性网络拓扑. 为 ...

最新文章

  1. 谷歌顶级量子科学家详述他为何从谷歌辞职
  2. 重磅 |“金砖”电商报告:5年后金砖五国网络零售将超3万亿美元
  3. 14 张Python数据科学速查表
  4. Win10+Torch1.9+CUDA11.1成功配置YOLOX预测环境
  5. java先执行static还是构造函数_【Java基础】类的实例化、static、父类构造函数执行顺序...
  6. MSN P2P资料转载
  7. 关于T-SQL中exists或者not exists子查询的“伪优化”的做法
  8. AppBoxPro - 细粒度通用权限管理框架(可控制表格行内按钮)源码提供下载
  9. python_对象的基本组成和内存示意图---python工作笔记016
  10. 信息系统项目管理通关指南
  11. 【知识蒸馏综述】用20篇论文走完知识蒸馏在 2014-2020 年的技术进展
  12. 两个大数之间的乘积计算,string1=123456789...76,string2=23456...8957,求模拟计算机计算这两个数字的乘积。(C++实现)
  13. 根据TTL值判断目标主机的类型
  14. 高考改变命运,来自一个湖南贫困村的真实样本
  15. 低频声音功率放大器电子设计报告
  16. centos7 rpm安装时报警 Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
  17. 透视投影的原理和实现
  18. Python 实现N的多次方
  19. 嵌入式开发学习学习路线
  20. 关于bss段的一些思考

热门文章

  1. Crm项目总结-营销模块-机会数据管理
  2. unity常连接mysql_Unity 连接MYSQL
  3. 教你从头写游戏服务器框架 1
  4. 一场特殊发布会与小米的「重新创业」
  5. 机器学习----第十一章特征选择与稀疏学习 学习笔记
  6. 大数据单机学习环境搭建(5)Hive建表DDL详解
  7. 推荐一个好用的Vite插件:移动端开发利器vite-plugin-eruda替代vconsole插件
  8. 数据库---JDBC编程
  9. 思迈特软件Smartbi:数据分析的作用及基本原则
  10. 安装Microsoft .NET Framework 2.0 软件开发工具包 (SDK) (x64)