码迷,mamicode.com
首页 >  
搜索关键字:redis源码    ( 282个结果
Redis源码分析(三十六)--- Redis中的11大优秀设计
坚持了一个月左右的时间,从最开始的对Redis的代码做分类,从struct结构体分析开始,到最后分析main主程序结束,中间,各大模块的代码逐个击破,学习,总之,收获了非常多,好久没有这么久的耐心把一个框架学透,学习一个框架,会用那只是小小的一部分,能把背后的原理吃透才是真功夫。在这个学习的最后阶段,是时候要来点干货了,我把这1个多月来的一些总结的一些比较好的代码,和设计思想总结出来了,原本想凑成...
分类:其他好文   时间:2014-11-08 12:10:10    阅读次数:245
Redis源码分析(三十五)--- redis.c服务端的实现分析(2)
在Redis服务端的代码量真的是比较大,如果一个一个API的学习怎么实现,无疑是一种效率很低的做法,所以我今天对服务端的实现代码的学习,重在他的执行流程上,而对于他的模块设计在上一篇中我已经分析过了,不明白的同学可以接着看上篇。所以我学习分析redis服务端的实现也是主要从main函数开始。在分析main执行流程之前,Redis的作者在这里声明了几个变量,这个我们有必要知道一下。 /* Our ...
分类:其他好文   时间:2014-11-08 10:31:44    阅读次数:260
Redis源码分析(三十四)--- redis.h服务端的实现分析(1)
上次刚刚分析过了客户端的结构体分析,思路比较简答,清晰,最后学习的是服务端的实现,服务端在Redis可是重中之重,里面基本上囊括了之前模块中涉及到的所有知识点,从redis的头文件就可以看出了,redis.h代码量就已经破1000+行了,而且都还只是一些变量,宏定义的声明,和一些方法原型的声明。所以,今天的总结跟昨天一样,先不做具体的实现学习,先从全局的角度思考,服务端的整体设计思路,这从头文件的...
分类:其他好文   时间:2014-11-07 17:05:02    阅读次数:149
Redis源码分析(三十三)--- redis-cli.c客户端命令行接口的实现(2)
今天学习完了命令行客户端的后续内容,整体感觉就是围绕着2个东西转,config和mode。为什么我会这么说呢,请继续往下看,客户端中的配置结构体和之前我们所学习的配置结构体,不是指的同一个概念,cli中的结构体除了基本的ip,Port端口号,还有就是各种mode的配置了。 /* Redis配置结构体 */ static struct config { char *hostip; ...
分类:其他好文   时间:2014-11-07 11:25:06    阅读次数:139
Redis源码分析(三十二)--- redis-cli.c客户端命令行接口的实现(1)
分析了将近1个月的Redis源代码了,也到了最核心的,最贴近系统开始的地方了,我把他取名为main目录,里面就包括了2个重要的文件,redis-cli和redis文件,1个代表的是客户端的执行文件,1个代表的是服务端的文件,这2个也是整个系统最最核心的模块,所以我把他归结到main主程序模块了,主程序模块也是我学习Redis最后的一个模块,在这里一定能看到我之前看到的所有各个功能模块的痕迹。由于主...
分类:其他好文   时间:2014-11-06 10:55:16    阅读次数:425
Redis源码分析(三十一)--- latency延迟分析处理
每当提到延时统计的时候,一定想到的一个名词就是”性能测试“,没错,在Redis的redis_benchmark文件中,的确用到了延迟文件中的相关信息。在Redis中的官方解释此文件: /* The latency monitor allows to easily observe the sources of latency * in a Redis instance using the LAT...
分类:其他好文   时间:2014-11-05 10:55:34    阅读次数:363
Redis源码分析(二十九)--- bio后台I/O服务的实现
在Redis系统中也存在后台服务的概念,background Service,后台线程在Redis中的表现主要为background I/O Service,有了后台线程的支持,系统在执行的效率上也势必会有不一样的提高。在Redis代码中,描述了此功能的文件为bio.c,同样借此机会学习一下,在C语言中的多线程编程到底是怎么一回事。我们先来看看,在Redis中的background job的工作形...
分类:其他好文   时间:2014-11-03 11:32:37    阅读次数:279
Redis源码分析(二十七)--- rio系统I/O的封装
I/O操作对于每个系统来说都是必不可少的一部分。而且I/O操作的好坏,在一定程度上也会影响着系统的效率问题。今天我学习了一下在Redis中的I/O是怎么处理的,同样的,Redis在他自己的系统中,也封装了一个I/O层。简称RIO。得先看看RIO中有什么东西喽: struct _rio { /* Backend functions. * Since this functions ...
分类:其他好文   时间:2014-11-02 10:56:10    阅读次数:166
Redis源码分析(二十六)--- slowLog和hyperloglog
今天学习的是是2个log的文件,2个文件的实现功能都超出我原本理解的意思。开始时我以为就是记录不同的类型的日志,后来才慢慢的明白了额,slowLog记录的是超时的查询记录,而hyperloglog其实跟日志一点关系都没有,好吧,我再一次傻眼了,他其实是一种基数统计算法,应该分开了看,hyper + loglog的计算。好,接下来,我们开始学习一下Redis代码中是如何实现的。        sl...
分类:其他好文   时间:2014-11-02 09:27:14    阅读次数:248
Redis源码分析(二十四)--- tool工具类(2)
在上篇文章中初步的分析了一下,Redis工具类文件中的一些用法,包括2个随机算法和循环冗余校验算法,今天,继续学习Redis中的其他的一些辅助工具类的用法。包括里面的大小端转换算法,sha算法在Redis中的实现和通用工具类算法util.c。          先来看看大小端转换算法,大小端学习过操作系统的人一定知道是什么意思,在不同的操作系统中,高位数字的存储方式存在,高位在前,低位在后,或是...
分类:其他好文   时间:2014-10-31 12:06:50    阅读次数:227
282条   上一页 1 ... 23 24 25 26 27 ... 29 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!