加载中
Redis源码分析系列二:main函数之initServerConfig解析

经过短暂的休息,估计3分钟,让我们开始分析initServerConfig这个函数,从名字我们就知道是初始化server的各个参数。废话少说,言归正传。 注意:比较简单的函数,本系列不会详细介绍,只有重...

我的架构演化笔记 10:ElasticSearch的分词器之ansj研究

架构不变,为了学习方便,直接研究ElasticSearch-rtf版本。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 关于redis---配置文件中指定 redis: pool: maxactive: 20 ...

Redis源码分析系列十七:processCommand后续

继续研究。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if ((dictSize(c->pubsub_channels) > 0 || listLength(c->pubsub_patterns) > 0) && c->cmd->proc != subscribeCommand && c->cmd->proc != unsub...

Redis源码分析系列十四:processInputBuffer

假定我们已经取到了很多数据, 现在在看代码之前,我们可以自己先想下如果是自己处理字符串会是怎样的过程。 一般情况下,自然是从流里不停的搜索出一个命令,然后执行,再搜素出下一个。 直...

Redis源码分析系列十六:processCommand研究

现在让我们回到processInputBuffer函数。 剩下的代码是: /* Multibulk processing could see a <= 0 length. */ if (c->argc == 0) { resetClient(c); } else { /* Only reset the client ...

Redis源码分析系列三:initServerConfig下半部分

经过短暂的休息,开始研究initServerConfig下半部分。 //开始研究下半部分 /* Replication related */ server.masterauth = NULL;//设置masterauth为NULL server.masterhost = NULL; server...

Redis源码分析系列十二:readQueryFromClient

下面我们紧接着研究客户与服务器交互的readQueryFromClient函数。 redisClient *c = (redisClient*) privdata; //指向之前设置的对象指针 int nread; int readlen; //REDIS_IOBUF_LEN size_t...

Redis源码分析系列二十一: 4 select---selectCommand

今天来看看select命令。我现在是感觉Redis博大精深,想要在短期内完全搞透这个软件不是那么容易啊!!! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 我之前就很纳闷,server.db有16个成员,为啥每次c...

我的架构演化笔记 9:ElasticSearch的分词器IK Analyzer动态添加分词

需求:动态添加词汇 先设计架构吧,这里用了单机Redis. 计划把词汇放在Redis里,然后ES里利用redis的pub/sub功能获取词汇。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 下面开始...

Redis源码分析系列二十四: 7 set---setCommand解析

这个命令应该是打通很多命令的关键点,估计也是用的最多的命令了。 所以必须一字一句的来剖析这个命令的本质! 我只能说:所有的反动派都是纸老虎! 注意:这个操作的数据影响server.db[index...

算法导论原理分析系列5:第11章 散列表

这个正好之前看的redis源码里有用到哈希表,所以结合redis源码来分析哈希表。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~先看书上的理论 11.1 直接寻址表 简单,略过。 11.2 散列表 首先需要计算某种哈希...

Redis源码分析系列十:acceptTcpHandler

欲知后事如何,且让我慢慢道来。 现在讲到了函数acceptTcpHandler。我们来跟进去看原理。 ~~~~~~~~~~~~~~~ int cport;//定义整型变量 int cfd;//定义整型变量 char cip[REDIS_IP_STR_LEN]; ...

Redis源码分析系列七:initServer下

这个函数快到尾声了,一鼓作气! if(aeCreateTimeEvent(server.el, 1, serverCron, NULL, NULL) == AE_ERR) { redisPanic("Can't create the serverCron time event."); exit(1); } 这个函数...

Redis源码分析系列:引子

平时上班,没啥挑战性,百无聊赖。 现决定每天回家,开始看开源代码,提高技术,亦可打发时间。 欢迎各位同道中人一起学习Redis, 下载地址: http://download.redis.io/releases/redis-2.8....

Redis源码分析系列二十三: 6 info---infoCommand

char *section = c->argc == 2 ? c->argv[1]->ptr : "default"; //设定具体取什么样的信息 //自定义检查点: 1 2 3 if (c->argc > 2) { addReply(c,shared.syntaxerr); return; } //如果参数过...

KeepAlived防止单点故障

负载均衡器里面,HAProxy比较出名了,但是如果只用一台HAProxy,则会出现单点故障。 这个时候,该KeepAlived出马了。 http://www.cnblogs.com/dkblog/archive/2011/07/06/2098949.html (参考文...

Redis源码分析系列十五:processInlineBuffer

现在我们开始分析具体的处理函数processInlineBuffer。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char *newline = strstr(c->querybuf,"\r\n"); //查找第一个\r\n的位置 int argc; int j; //设...

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部