redis7.0源码阅读(一):源码安装(如何去高效阅读源码)
redis7.0源码阅读(一):源码安装(如何去高效阅读源码)
- 1.在vscode中打开redis7.0文件目录
- 2.配置task.json
- 3.配置launch.json
- 4.启动
- 5.安装遇到的一些问题
- jemalloc/jemalloc.h: No such file or directory
- 6.如何打断点和阅读源码
阅读源码的方式:
通过vscode来进行源码阅读,在redis-server执行的过程中,在想要阅读的部分打上断点,在redis-cli发送命令的时候,就会停在断点上,这样一步步阅读更加合适。
首先下载来redis7.0源码官网下载,解压
1.在vscode中打开redis7.0文件目录

2.配置task.json
ctrl+shift+p进入下面,界面,选择配置任务(Configure Task),就会生成task.json

task.json配置如下
进行make操作
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"type": "shell","label": "redis-build","command": "/usr/bin/make","args": ["MALLOC=libc"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": "$gcc","group": "build","detail": ""}]
}
3.配置launch.json
由于make后会在src中生成redis-server
因此执行的program为"${workspaceFolder}/src/redis-server"
指定配置文件"redis.conf"
工作目录“${workspaceFolder}”
指定启动前的Task任务(先build),“preLaunchTask”: “redis-build”
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "redis启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}/src/redis-server","args": ["redis.conf"],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},],"preLaunchTask": "redis-build"}]
}
4.启动

下面这样就说明启动成功了

也可以通过下面命令,查找到运行的redis-server
ps aux|grep redis-server
5.安装遇到的一些问题
jemalloc/jemalloc.h: No such file or directory
make MALLOC=libc
在task.json中已经加入

6.如何打断点和阅读源码
以string数据结构中的 set命令为例,如何查看它的源码呢?
在vscode中ctrl+p然后输入command.c,找到这个源文件

在string数据结构下,很快就能找到set命令

在set这一行,可以找到调用的函数 setCommand,并进入

然后打上断点

然后在redis-cli中执行set操作

这边就会停在断点处

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
