高端定制手机网站,公司网站有哪些重要性,邯郸兄弟建站,做个人网站的步骤一#xff1a;开篇Redis 它是个宝#xff0c;男女老少都说好。秒杀限流分布式#xff0c;什么需求都能搞。Redis 主要的用途是分布式缓存#xff0c;其实不用我多介绍#xff0c;相信大家都用过Redis。之前也看过不少Redis的书#xff0c;其中就包括《Redis设计与实现》。…一开篇Redis 它是个宝男女老少都说好。秒杀限流分布式什么需求都能搞。Redis 主要的用途是分布式缓存其实不用我多介绍相信大家都用过Redis。之前也看过不少Redis的书其中就包括《Redis设计与实现》。但还是那句老话纸上得来终觉浅绝知此事要躬行。从这篇文章开始我会去探索 Redis 源码真真切切的去了解它的设计与实现。阅读源码离不开调试本篇文章主要是讲如何调试 Redis 源码很基础主要是面向没有过 VS Code 调试经验的同学免的大家还需要自己去Google浪费时间。二物料源码地址https://github.com/antirez/redis (源码分析基于 5.0 版本)IDEVS Code三编译调试1编译直接 cd 到源码根目录执行 make 即可2调试这里我使用的 VS Code导入源码后直接添加调试配置如下{version: 0.2.0,configurations: [{name: (lldb) Launch,type: cppdbg,request: launch,program: 你的源码路径/redis/src/redis-server,args: [],stopAtEntry: false,cwd: ${workspaceFolder},environment: [],externalConsole: true,MIMode: lldb}]
接下来就可以开始断点调试了下面来演示下。第一步我们在 VS Code 中启动 Redis成功启动后可以看见如下界面第二步在 t_string.c 的 setCommand(client *c) 上打上断点这个方法是 Redis 用来 set 字符串结构的也就是我们经常使用的 set 命令。第三步新开一个终端执行 redis-cli启动客户端用来连接 redis 服务。第四步执行 set 命令如 set a A此时再回到 VS Code 中就会看见断点已经生效了。第五步接下来我们看看如何使用 lldb 打印内存。我们跟着上面这个断点往下走进入 setGenericCommand() 中停到 setKey(c-db,key,val); 这一行。此时 key 和 val 的存储的数据内存地址 ptr 展现在上图左边的红框内我们可以在调试控制台输入 -exec lldb命令 来执行lldb命令下面我们来演示下如何打印出 key 和 val 的值。key 和 val 的值和我们在客户端 set 的值相同符合预期。因为我用的 mac所以上面演示用的是 lldb习惯用 gdb 的同学当然也可以使用 gdb 来调试只需将调试配置中的 MIMode 改成 gdb 即可。四多聊几句调试在源码阅读的过程中真的很重要上面这些虽然简单但是我之所以写下来还是希望对于想阅读源码的同学能带来一点帮助。后面的文章中我就会由浅入深如标题所言开始进入Redis源码世界有兴趣的同学可以关注下后续文章一起学习。听说喜欢点关注的同学都长得帅