• Redis-10-发布订阅


    • 一种消息通信模式

    • 角色

      • 消息发布者:发布消息到频道

      • 频道:消息队列

      • 消息订阅者:从频道接收消息

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

    • 命令

      • subscribe channel [channel ...]:订阅给定的频道,可以订阅多个

      • publish channel message:发送消息到频道

      消息接收者同步接收消息

      • psubscribe pattern [pattern...]:订阅一个或多个符合指定模式的频道

      • punsubscribe [pattern [pattern ...]]:退订所有给定模式的频道

      • unsubscribe [channel [channel ...]]:退订给定的频道

      • pubsub subcommand [argument [argument ...]]:查看订阅与发布系统状态

    • 原理

      • pubsub.c文件中是Redis的源码

      • 通过subscribe命令订阅一个频道后,redis-server里维护了一个字典

        • key:频道

        • value:订阅了该频道的消息订阅者,一个链表

        此命令的关键点在于将订阅者添加到给定频道的订阅者链表中

      • 通过publish命令发送消息后,redis-server会使用指定的频道作为键值,查找字典中在此键值上的所有订阅了该频道的用户,遍历链表,将消息发送给所有订阅者

    • 应用场景

      • 实时消息系统

      • 实时聊天室

      • 发布、订阅系统

  • 相关阅读:
    Tree(未解决。。。)
    Fractal(递归,好题)
    Scrambled Polygon(凸多边形,斜率)
    ZYB's Game(博弈)
    Dancing Stars on Me(判断正多边形)
    Hidden String(深搜)
    1043
    TEX Quotes(字符串,水)
    Candy Sharing Game(模拟搜索)
    hpu校赛--雪人的高度(离散化线段树)
  • 原文地址:https://www.cnblogs.com/LittleSkinny/p/13696927.html
Copyright © 2020-2023  润新知