02 - Redis源码结构介绍

系列文章目录

01 - 使用VS Code调试Redis源码
02 - Redis源码结构介绍



就像看书要先看目录了解整本书的结构一样,读源码也要纵览目录结构,了解其组织方式。

本文可以看作是Redis 源码剖析与实战 # 01 | 带你快速攻略Redis源码的整体架构 一文的笔记,原文比较详细,笔记就略过了我尚未阅读的源码。

源码目录介绍

目录总览

在排除了一些无关紧要的文件之后,项目的一级目录如下所示:

.
├── runtest            // 执行Redis单元测试
├── runtest-cluster    // 执行集群相关测试
├── runtest-sentinel   // 执行哨兵相关测试
├── redis.conf         // redis启动配置文件
├── sentinel.conf      // 哨兵方式启动配置文件
├── deps               // 依赖的第三方库
├── src                // 功能模块源码
├── tests              // 测试代码
└── utils              // 辅助工具

一级目录及其子目录作用如下所示:

作用

deps目录

deps目录下存放的是第三方代码库。

一般有两种类型的代码会放在此目录下:

  1. 替代标准glibc库的功能

    1. 如Redis可以选择不同的内存分配器,用jemalloc作为内存分配器以替代标准的glibc内存分配器以解决glibc内存分配碎片过多等问题
    2. 如使用linenoise替代readline处理命令行
  2. 可以独立于Redis演进的代码,比如客户端

总之deps目录下的代码特点就是:可以独立于src目录编译

src 目录

src是与Redis功能有关的代码,未来阅读的都是这个目录下的代码。

这个目录下的代码比较重要,后面的章节会从功能的角度去分类介绍各个源码文件的用途。

tests 目录

顾名思义,这个目录下是与Redis测试有关的代码,使用Tcl这门语言编写。

之前跟着2.8版本的代码阅读,苦于不清楚如何运行测试脚本,但阅读的redis-3.0-annotated源码中提供了运行测试的shell脚本。

项目的一级目录中,runtestruntest-clusterruntest-sentinel可以运行对应的单元测试、集群测试以及哨兵测试。

在本机尝试运行

sh runtest

正常输出,但runtest-cluster以及runtest-sentinel无法成功执行,此中原因暂未确认。

utils目录

这个目录下存放的是一些工具类代码

主要功能对应文件

功能角度

数据结构

参考资料

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值