redis pubsub.c
来源:互联网 发布:淘宝我的焦点怎么取消 编辑:程序博客网 时间:2024/06/13 09:26
channel是一个精确的名字,pattern则是glob匹配(通配符匹配)。
这个文件主要包含了以下接口:
int listMatchPubsubPattern(void *a, void *b) ; // a和b指向pubsubPattern结构:
/*
typedef struct pubsubPattern {
redisClient* client;
robj* pattern;
};
*/
// 订阅频道,往client->pubsub_channels这个set中添加,往server.pubsub_channels对应client列表中添加client
int pubsubSubscribeChannel(redisClient *c, robj *channel);
int pubsubUnsubscribeChannel(redisClient *c, robj *channel, int notify);
// 订阅pattern,往client->pubusb_patterns这个list中添加,往server.pubusb_patterns中添加pubsubPattern结构
int pubsubSubscribePattern(redisClient *c, robj *pattern);
int pubsubUnsubscribePattern(redisClient *c, robj *pattern, int notify);
int pubsubUnsubscribeAllChannels(redisClient *c, int notify);
int pubsubUnsubscribeAllPatterns(redisClient *c, int notify);
// 发布消息时先对匹配channel的clients发送,然后对匹配pattern的clients发送
int pubsubPublishMessage(robj *channel, robj *message);
void freePubsubPattern(void *p); // 需要decrRefCount(p->pattern)
// 相应的命令在这里,subscribe后面跟几个参数,逐一订阅
void subscribeCommand(redisClient *c);
// 不跟参数,unsubscribe all,否则后面跟几个参数,逐一取消订阅
void unsubscribeCommand(redisClient *c);
// psubscribe后面跟几个参数,逐一订阅
void psubscribeCommand(redisClient *c);
// 不跟参数,unsubscribe all,否则后面跟几个参数,逐一取消订阅
void punsubscribeCommand(redisClient *c);
// 第一个参数是channel,第二个参数是message
void publishCommand(redisClient *c);
从上面看来,channels和pattern都需要在client和server中保存,不过channels用set保存,patterns用list保存。
- redis pubsub.c
- 结合redis设计与实现的redis源码学习-17-发布与订阅(pubsub.c)
- Redis pubsub机制源码分析
- jedis调用redis之pubsub
- Spring Data Redis(Redis Messaging/PubSub)
- PubSub
- Redis源码分析(三十)--- pubsub发布订阅模式
- redis 学习手册之发布和订阅pubsub操作
- Redis源码分析(十七)——订阅与发布PubSub
- py2exe pubsub package参数
- PubSub机制测试
- PubSub模式简单实现
- 关于XMPP PubSub
- pubsub 设计模式
- 消息总线优化之PubSub
- Pubsub之collection Node和leaf node
- OPC UA--第十四部分 PubSub 发布订阅
- pubsub-js 实现RN组件间通信
- C++箴言:理解 new-handler的行为
- python的redis用法
- android ListView使用
- 数组的组合和全排列
- 程序员学英语三部曲
- redis pubsub.c
- jspSmartUpload
- apache的commons-fileupload实现文件上传,下载
- 《java编程实战》笔记
- 新方法 & 新属性
- ubuntu下为thunderbird添加邮件提醒功能
- 取字母组串
- POJ1088
- c# sqlite 数据库加解密