编译 Redis & 梳理目录结构

1. 工具下载

1.1. 代码阅读工具 - CLion

2. code

2.1. 下载源码

源码: GitHub - redis/redis: For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

如果是 wsl 环境,直接将源码下载到 wsl 环境中,不要在 windows 本地环境调试 redis ~

1
git clone https://github.com/redis/redis.git

这里我们以 7.0.5 的版本来编译并查看源码的目录结构。

切换分支到 7.0.5:

1
git checkout tags/7.0.5 -b 7.0.5

2.2. 编译

如果是 wsl 环境,需要安装必备的编译工具:

1
2
3
4
5
6
7
8
9
10
11
# 1. 更新包索引(确保能安装最新版本,避免依赖冲突)
sudo apt update -y

# 2. 安装核心编译工具链(gcc、g++、make、pkg-config 等)
sudo apt install -y build-essential pkg-config cmake

# 3. 安装调试工具(gdb,用于后续 CLion 调试)
sudo apt install -y gdb

# 4. 安装 Redis 编译必需的额外依赖(避免后续缺库)
sudo apt install -y tcl zlib1g-dev libssl-dev

在 CLion 中配置 wsl 编译器,将 wsl 设置为默认工具链:

前提:如果编译环境没有 gcc 编译器,检查:

1
2


用 CLion 打开 redis,这里我是 windows,推荐使用 WSL 来对源码进行编译,在代码的根目录执行下面命令来编译:

1
make CFLAGS="-g -O0" MALLOC=jemalloc

如果编译失败了,执行下面命令清理编译残留后再编译:

1
make distclean

问题:

  1. 报错 fatal error: release.h: No such file or directory:
1
release.c:37:10: fatal error: release.h: No such file or directory 37 | #include "release.h" | ^~~~~~~~~~~ compilation terminated. make[1]: *** [Makefile:403: release.o] Error 1 make[1]: Leaving directory '/mnt/d/code/redis/src' make: *** [Makefile:6: all] Error 2

这个错误的核心原因是:脚本文件的换行符格式是 Windows 风格(CRLF),而 Linux/WSL 只识别 Unix 风格(LF)。脚本第一行的 /bin/sh 后面带了 Windows 换行符 ^M(即 \r),导致 Linux 找不到正确的解释器路径。

1
2
3
4
5
# 在src目录下执行,直接修改脚本文件
sed -i 's/\r$//' mkreleasehdr.sh

# 验证修改成功(执行后无报错即可)
./mkreleasehdr.sh
  • 命令说明:s/\r$// 表示把每一行末尾的 \r(即 ^M)替换为空,本质就是转换成 Unix 换行符。

  • 转换成功后,继续完成编译流程

  1. 确认 release.h 已生成:
1
ls -l release.h  # 能看到文件说明生成成功
  1. 回到 Redis 根目录,清理编译残留:
1
2
cd /mnt/d/code/redis
make distclean
  1. 重新编译:
1
make CFLAGS="-g -O0" MALLOC=jemalloc

出现下图所示时,表示编译成功

2.3. 启动编译好的 redis-server

执行下面命令 进入 src 目录启动 redis-server

1
cd src && ./redis-server ../redis.conf

启动成功~

2.4. 代码调试环境搭建

[TODO] 修改配置, 这里有点问题。。。:


编译 Redis & 梳理目录结构
https://yangfanbin.cn/代码笔记/编译 Redis & 梳理目录结构/
作者
Yang Fanbin
发布于
2025年11月21日
许可协议