redis之readQueryFromClient
来源:互联网 发布:男装潮牌有哪些知乎 编辑:程序博客网 时间:2024/05/29 19:03
void readQueryFromClient(aeEventLoop *el, int fd, void *privdata, int mask)
读数据到redisClient::querybuf;
读到数据超过client_max_querybuf_len时,直接freeClient(c);
processInputBuffer(c);
1、输入以*开头,则reqtype为REDIS_REQ_MULTIBULK,调用processMultibulkBuffer(c);
2、否则,reqtype为REDIS_REQ_INLINE,调用processInlineBuffer(c);
3、调用processCommand(c);
int processInlineBuffer(redisClient *c)
strstr(c->querybuf,"\r\n")找行尾;
argv = sdssplitlen(c->querybuf,querylen," ",1,&argc),按空格分隔每个参数;
更新c->querybuf;
根据argv设置c->argv;
int processMultibulkBuffer(redisClient *c)
解析请求,请求格式如下:
*multibulklen\r\n
$bulklen\r\n
..........\r\n
$bulklen\r\n
..........\r\n
multibulklen指定有多少个bulk,bulklen指定每个bulk的长度;
multibulklen范围[0, 1024*1024];
bulklen范围[0,512*1024*1024];
更新c->querybuf;
根据argv设置c->argv;
int processCommand(redisClient *c)
处理client发送的命令;
- redis之readQueryFromClient
- redis之 网络模型,acceptTcpHandler,readQueryFromClient,bio
- redis之redis.conf
- Redis之初识Redis
- Redis之Redis配置文件redis.conf 详解
- Redis实战之Redis + Jedis
- Redis实战之Redis + Jedis
- Redis 之 Redis的作用
- Redis实战之Redis + Jedis
- Redis : ServiceStack.Redis之IRedisClient
- Redis实战之Redis + Jedis
- Redis实战之Redis + Jedis
- Redis学习之Redis分区
- redis学习之Redis 哈希
- Redis实战之Redis + Jedis
- Redis实战之Redis + Jedis
- 【Redis】Redis之主从复制
- 【Redis】缓冲之Redis简介
- C#抽象类和抽象方法
- 坑爹的dbank开发3
- objective-c block 详解
- Android另一种异步任务机制:AsyncTask
- Vitamio中文API文档—— MediaPlayer
- redis之readQueryFromClient
- debian 启动过程
- Android的Task和Activity相关
- SWT常用组件
- 【网站制作视频教程】-第16讲 css理解表现与结构相分离!-传智播客
- android 图形底层实现
- [EXTNET]之文本财务格式化
- Linux yum 命令介绍
- C#对多个集合和数组的操作(合并,去重,判断)