zoukankan      html  css  js  c++  java
  • 消息传递:发布订阅模式详解

    1. Redis发布订阅简介

    (1) 定义:Redis发布订阅(pub/sub)是一种消息通讯模式:发送者发送消息,订阅者接受信息

    (2) 具体操作:RedisSUBSCRIBE命令可以让客户端订阅任意数量的频道,每当有新信息发送到被订阅的频道时,信息就会被发送给所有订阅指定频道的客户端

    (3) 实例

    下图展示了频道channel1,以及订阅该频道的客户端----client2client5client1之间的关系

     

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

     

    1. 发布/订阅使用

    (1) 发布订阅模式

    ① 基于频道(channel)的发布/订阅

    1) 发布/订阅模式包含两种角色,分别是发布者和订阅者。发布者可以向指定的频道发送消息;订阅者可以订阅一个或者多个频道,所有订阅此频道的订阅者都会收到此消息

    2) 图示

     

    ② 基于模式(pattern)的发布/订阅

    1. 基于频道(channel)的发布/订阅是如何实现的?

    (1) 底层是通过字典(图中的publish_channel)实现的,这个字典就用于保存订阅频道的信息:字典的键为正在被订阅的频道,而字典的值则是一个链表,链表中保存了所有订阅这个频道的客户端。

    (2) 数据结构

    ① 实例:在下图展示的这个pubsub_channels的示例中,client2client5client1就订阅了channel1,而其他频道也被别的客户端所订阅

    ② 图示

     

    (3) 订阅

  • 相关阅读:
    Promis.then()
    原生JS简单封装JSONP跨域获取数据
    原生JavaScript手写Ajax
    VS Code保存代码自动按eslint格式fix
    html data-xx 及 data()注意事项
    C#委托和事件
    vue devServer proxy 代理无效的问题
    vue .sync的使用
    js中,0的判断
    使用idea启动node项目的问题
  • 原文地址:https://www.cnblogs.com/juddy/p/14817490.html
Copyright © 2011-2022 走看看