redis的一些介绍,麻烦阅读前面的几篇文章,想对redis的详细实现有所了解,强力推荐《redis设计与实现》(不仅仅从作者那儿学习到redis的实现,还有项目的管理、思想等,作者可能比你我都年轻欧)。如果阅读了上面的文档,激起你对redis的强力好奇,那么就只能阅读源码了。不管是在校学生,还是已工作的,redis的代码都值得阅读。我们可以了解如何编写一个工程可用软件,可以学习一些开源常用软件,通过redis丰富的数据结构,可以熟悉大学学习的那点儿数据结构,可以了解如何实现一个自己高效的网络框架等等。

我看到有人介绍redis源代码的阅读方法如下:

  1. 自底向上:从耦合关系最小的模块开始读,然后逐渐过度到关系紧密的模块。就好像写程序的测试一样,先从单元测试开始,然后才到功能测试。我在刚开始读 Redis 源码的时候,使用的就是这种方法:先从单独的数据结构模块开始,然后再过渡到高层的功能模块。

  2. 从功能入手:通过文件名(模块名)和函数名,快速定位到一个功能的具体实现,然后追踪整个实现的运作流程,从而了解该功能的实现方式。我在读阻塞列表、数据库这种流程和功能都比较复杂,和其他文件耦合也比较多的模块时,使用的就是这样的方法。

  3. 自顶向下:从程序的 main() 函数,或者某个特别大的调用者函数为入口,以深度优先或者广度优先的方式阅读它的源码。我在阅读 redis.c/serverCron() 、 redis.c/main() 和 ae.c/aeMain() 这种有明显调用者性质的函数时,使用的就是这样的方法。

我觉得不错,可以作为参考欧。

你是吧现在就准备动手了,但是一个人阅读代码,写文档比较枯燥,害怕自己坚持不住,并且个人能力有些,有可能对有些代码理解错误或者不能觉察作者的用意。因此准备探索一种新的代码阅读模式,通过一个开源项目和一个qq群把大家团结起来,开源项目的提交人必须是有限的,但是正在阅读代码的人可能很多,发现了问题不能及时反馈或者咨询,QQ群比较及时。开源项目是一个代码分析的文档,restructured text格式,使用sphinx进行生成各种文档格式。sphinx的使用可以参考:(sphinx命令 绘图)等。寻找四个有兴趣的小伙伴可以进行编辑,别的小伙伴就不好意思了,因为bitbucket只能免费支持五个,只能在qq群反馈意见。

为了建立信任,就做一下自我介绍:2012年毕业于西安电子科技大学,现在就职于一家深圳网络公司,从一进公司就是做数据仓库这一块儿的,公司使用的是自研的系统,详细就不太方便介绍。对大数据比较感兴趣,同时也在了解一些hadoop、spark的知识。但是,这是第一次进行这样的尝试,若有什么好的建议欢迎提给楼主欧。

项目地址:https://bitbucket.org/softfree/redis_doc

点击链接加入群【redis】

redis源码解析 http://redissrc.readthedocs.org/en/latest/

如果想成为文档编辑者可邮件,最好做一下简单自我介绍:371387455(at)qq.com

http://redissrc.readthedocs.org/en/latest/

一起学习redis源码的更多相关文章

  1. 从零开始学习redis源码

    2020的开年是比较艰难的,爆发了肺炎疫情,希望大家多注意安全,也希望疫情早日好转! 以3.2版本的源码为例,开始讲解,有时会贴出源码,进行说明,并会注明源码出处. 数据库 应该都知道默认redis会 ...

  2. __sync_fetch_and_add函数(Redis源码学习)

    __sync_fetch_and_add函数(Redis源码学习) 在学习redis-3.0源码中的sds文件时,看到里面有如下的C代码,之前从未接触过,所以为了全面学习redis源码,追根溯源,学习 ...

  3. Redis源码研究--字典

    计划每天花1小时学习Redis 源码.在博客上做个记录. --------6月18日----------- redis的字典dict主要涉及几个数据结构, dictEntry:具体的k-v链表结点 d ...

  4. Redis源码学习:字符串

    Redis源码学习:字符串 1.初识SDS 1.1 SDS定义 Redis定义了一个叫做sdshdr(SDS or simple dynamic string)的数据结构.SDS不仅用于 保存字符串, ...

  5. Redis源码学习:Lua脚本

    Redis源码学习:Lua脚本 1.Sublime Text配置 我是在Win7下,用Sublime Text + Cygwin开发的,配置方法请参考<Sublime Text 3下C/C++开 ...

  6. redis源码学习之工作流程初探

    目录 背景 环境准备 下载redis源码 下载Visual Studio Visual Studio打开redis源码 启动过程分析 调用关系图 事件循环分析 工作模型 代码分析 动画演示 网络模块 ...

  7. redis源码学习之slowlog

    目录 背景 环境说明 redis执行命令流程 记录slowlog源码分析 制造一条slowlog slowlog分析 1.slowlog如何开启 2.slowlog数量限制 3.slowlog中的耗时 ...

  8. redis源码学习之lua执行原理

    聊聊redis执行lua原理 从一次面试场景说起   "看你简历上写的精通redis" "额,还可以啦" "那你说说redis执行lua脚本的原理&q ...

  9. 柔性数组(Redis源码学习)

    柔性数组(Redis源码学习) 1. 问题背景 在阅读Redis源码中的字符串有如下结构,在sizeof(struct sdshdr)得到结果为8,在后续内存申请和计算中也用到.其实在工作中有遇到过这 ...

随机推荐

  1. 关于ios极光推送server端注意的地方

    今天试用了极光推送API 用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路! 特别是服务端的代码:https://github.com/jpus ...

  2. OC-通讯录

    要求描述:用OC语言完成简易通讯录(实现增删改查)功能.(注:使用MRC) 1.创建AddressBook类. 1)使用字典作为容器,字典的Key值为分组名(姓名首字母),value值为数组,数组中存 ...

  3. 一个Option请求引发的深度解析

    在当前项目中,前端通过POST方式访问后端的REST接口时,发现两条请求记录,一条请求的Request Method为Options,另一条请求的Reuest Method为Post.想要解决这个疑惑 ...

  4. 宣讲ppt的技巧

    这是一个L运营商的项目,项目规模比较大,中兴的客户群体定位主要是电信运营商,运营商的项目做起来非常累,不是一般的小公司能玩的,一般项目要经过这几个过程,前期信息获得——技术交流引导——实验局测试——投 ...

  5. win8中如何禁用屏幕旋转的快捷键

    程序员通常会使用ctrl+alt+方向键 里编辑代码,特别对于使用eclipse的程序员,更是如此,但是win8却把这一快捷键给占用了,很不爽,如何办,很简单.直接上图: 2.但是发现禁用之后并没有解 ...

  6. [收藏]Spring Security中的ACL

    ACL即访问控制列表(Access Controller List),它是用来做细粒度权限控制所用的一种权限模型.对ACL最简单的描述就是两个业务员,每个人只能查看操作自己签的合同,而不能看到对方的合 ...

  7. Dreamweaver 8

    Dreamweaver 8 附注册码:WPD800-56030-83832-97910

  8. SSIS 控制流和数据流(转)

    理解控制流和数据流的一个入口是看他们如何运行的.一个控制流任务是一个最小的执行单位,它的运行结果有成功,失 败,和完成,在运行它的下一个任务之前必须得到这些结果.在数据流任务中,转换时最基本的元素.一 ...

  9. shell编程之环境变量

    在shell编程里我们首先接触到的是环境变量,常用命令说明 1. 使用echo命令查看单个环境变量.例如: echo $PATH 2. 使用env查看所有环境变量.例如: env 3. 使用set查看 ...

  10. C++ Templates基本知识

    一.使用Templates的原因:例如我们要写一个算法,由于类型不同,我们不得不做一下工作.1.使用宏定义代替Templates不利于类型检查. 2.将一些算法放在基类里,以后的扩展的子类都需要充基类 ...