最近在学习redis及阅读redis等程序的源码时,有一些收获,特记录到下面。

1.第一步,阅读源代码借助最好可以跟踪的工具去读,如sourceinsight。

我使用的是windows7环境,又因为是c程序,故使用sourceinsight,当然还有其他的方式,比如阅读java代码可以导入到eclipse。

2. 第二步,搭建可以启动该源程序的环境,并能启动成功。

根据最简单的配置,使用源码编译的方式,启动该程序。逐渐参考用户使用手册,修改配置文件进行测试,进而熟悉redis的使用。

3.第三步,阅读代码前先理清楚源码的数据结构、基本概念、算法。

数据结构诸如字典、双向链表的实现;

概念诸如aof、rdb、主从复制等

4. 第四步,使用debug模式启动程序,跑完整个流程。

使用redis的debug模式,了解运行的流程,理清思路。

5. 第五步,使用单元测试对数据结构、算法、流程进行单元测试。

使用cunit先进行数据结构的单元测试,再进行算法,然后是流程的测试。

最后考虑根据模块进行测试。

转载于:https://www.cnblogs.com/davidwang456/p/3552409.html

阅读redis源代码的一些体会相关推荐

  1. 如何高效的阅读Hadoop源代码?Hadoop的源代码写的怎么样?

    个人谈谈阅读hadoop源代码的经验. 首先,不得不说,hadoop发展到现在这个阶段,代码已经变得非常庞大臃肿,如果你直接阅读最新版本的源代码,难度比较大,需要足够的耐心和时间,所以,如果你觉得认真 ...

  2. linux源代码是用,阅读Linux源代码-使用lxr和glimpse

    折腾了两个多小时,好不容易才搭起来 以前也用,记得配置很容易做啊 1.glimpse-4.17.2-linux-i386.tar.gz 有新的,但装上不好用. 直接解压到/usr/local/bin下 ...

  3. k8s源码分析 pdf_我是怎么阅读kubernetes源代码的?

    为什么要阅读代码?怎么阅读k8s源代码?源代码中包含了所有信息.写开源软件,从文档和其他地方拿到的是二手的信息,代码就是最直接的一手信息.代码就是黑客帝国中neo看到的世界本源. 文本并不是代码本身. ...

  4. 如何阅读linux软件程序代码,如何阅读linux源代码

    如何阅读linux源代码 随着linux的逐步普及,现在有不少人对于Linux的安装已经比较熟悉了.与Linux的蓬勃发展相适应,想深入了解Linux的也越来越多.而要想深入了解Linux,就需要阅读 ...

  5. 如何阅读c++源代码

    转载自:https://www.cnblogs.com/markalex/p/3289696.html 如何阅读C++源代码 (这是我在阅读C++源代码时总结的一些体会,以后还要把新的体会再补充进来, ...

  6. 利用VSCode阅读OpenFOAM源代码及其调试Debug【终极总结篇】

    利用VSCode阅读OpenFOAM源代码及其调试Debug[终极总结篇] 1. 本文总结了Win10系统中利用VSCode连接wsl或远程服务器,阅读OF源代码及其调试Debug的方法(不仅适用于W ...

  7. 阅读 redis 源码,学习缓存淘汰算法 W-TinyLFU

    所有 IT 从业者都接触过缓存,一定了解基本工作原理,业界流行一句话: 缓存就是万金油,哪里有问题哪里抹一下 .那他的本质是什么呢? 上图代表从 cpu 到底层硬盘不同层次,不同模块的运行速度,上层多 ...

  8. redis源代码分析 – event library - Dicky - 开源中国社区

    redis源代码分析 – event library - Dicky - 开源中国社区 redis源代码分析 – event library

  9. Redis源代码分析(十一年)--- memtest内存测试

    今天,我们继续redis源代码test下测试在封装中的其它文件.今天读数memtest档,翻译了,那是,memory test 存储器测试工具..可是里面的提及了非常多东西,也给我涨了非常多见识,网上 ...

最新文章

  1. 基本lnmp平台的搭建(源码编译)
  2. 一篇文学会商用可编辑问卷表单制作【iVX 十二】
  3. 【小技巧】字符char与整型int的相互转换
  4. Arrays工具类常见方法
  5. 日结问题解决思路和方式
  6. Redmi K40S难产:缺芯是根本原因 明年或有望缓解
  7. vue-cli3使用vue-router 使用动态路由,在刷新页面时报错
  8. 记一次失败的电话面试
  9. 6.Swoole WebSocket
  10. 【AE】缺少Color属性或方法解决办法
  11. CCNA上机实验_19-PPP
  12. LayaAir引擎78款3D射击主题微信小游戏分享,看看玩过几款!
  13. python邮箱密码_python 模拟登陆163邮箱
  14. Pocket PC如何与PC机联网
  15. 融合VOI与VDI、IDV、RDS,实现弹性的应用
  16. 读取Excel 数据并写入到Word示例
  17. 访问网站,http、https协议抓包,完整分析
  18. JAVA学习日记每天进步一点点之集合类
  19. 小米10开始抓取日志怎么关闭_「教程」快来查查你的小米10是三星屏还是华星光电屏...
  20. win10计算机删除用户密码,win10怎么取消电脑开机密码

热门文章

  1. 计算机应用能力测试攻略,计算机应用能力测试题(一).doc
  2. php mysql 简单聊天室_聊天室phpmysql(一)
  3. inrange函数 python_为什么OpenCV的inRange函数不将我的HSV图像转换成二进制?
  4. python正确的输入语句_手把手教你在python中如何使用while True语句
  5. 计算机教师队伍掌握的素质,多措并举,努力打造高素质计算机教师x队伍.doc
  6. 图片上传组件_博客必备功能,拖拽上传图片!
  7. html打开新窗口设置窗口属性,HTML之:让网页中的a标签属性统一设置-如‘新窗口打开’...
  8. kvm linux重置密码,kvm虚拟机操作相关命令及虚拟机和镜像密码修改
  9. 原字体_时隔25天,再次更新字体,ios1213
  10. Python中if __name__ == ‘__main__‘:的作用和原理(自用笔记)