redis发布与订阅的实现

Posted Leonly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis发布与订阅的实现相关的知识,希望对你有一定的参考价值。

订阅消息

redis两种订阅方式

  • 订阅频道(subscribe, unsubscribe) ,精准订阅某个key
  • 订阅模式(psubscribe, punsubscribe),基于正则订阅某key

服务器记录订阅客户端的数据结构

struct redisServer {
    // 字典+链表,记录订阅频道客户端 {string: list<redisClient>]}
    dict *pubpub_channels;

    // 链表记录订阅模式客户端 list<{client: *redisClient, pattern: *robj}>
    list *pubpub_patterns;
}

发送消息

publist <channel> <message> 

接收消息

订阅频道接收消息格式

[message, <channel>, <content>]

订阅模式接收消息格式

[pmessage, <pattern>, <channel>, <content>]

以上是关于redis发布与订阅的实现的主要内容,如果未能解决你的问题,请参考以下文章

Redis | 第8章 发布订阅与事务《Redis设计与实现》#yyds干货盘点#

python实现 redis订阅与发布

面试被问到Redis实现发布与订阅,手摸手教

Redis发布订阅和事务实现原理

Redis发布订阅和事务实现原理

[Redis]发布/订阅