Redis源码剖析与实战
蒋德钧
中科院计算所副研究员
新⼈⾸单¥59
2866 人已学习
课程目录
已更新 25 讲 / 共 33 讲
0/4登录后,你可以任选4讲全文学习。
课前导读 (2讲)
开篇词 | 阅读Redis源码能给你带来什么?
免费
01 | 带你快速攻略Redis源码的整体架构
数据结构模块 (6讲)
02 | 键值对中字符串的实现,用char*还是结构体?
03 | 如何实现一个性能优异的Hash表?
04 | 内存友好的数据结构该如何细化设计?
05 | 有序集合为何能同时支持点查询和范围查询?
06 | 从ziplist到quicklist,再到listpack的启发
07 | 为什么Stream使用了Radix Tree?
事件驱动框架和执行模型模块 (7讲)
08 | Redis server启动后会做哪些操作?
09 | Redis事件驱动框架(上):何时使用select、poll、epoll?
10 | Redis事件驱动框架(中):Redis实现了Reactor模型吗?
11 | Redis事件驱动框架(下):Redis有哪些事件?
12 | Redis真的是单线程吗?
13 | Redis 6.0多IO线程的效率提高了吗?
14 | 从代码实现看分布式锁的原子性保证
缓存模块 (3讲)
15 | 为什么LRU算法原理和代码实现不一样?
16 | LFU算法和其他算法相比有优势吗?
17 | Lazy Free会影响缓存替换吗?
期中测试 (2讲)
期中测试 | 这些Redis源码知识,你都掌握了吗?
期中测试题答案 | 这些问题你都答对了吗?
不定期加餐 (2讲)
加餐1 | Redis性能测试工具的使用
加餐2 | 用户Kaito:我是怎么读Redis源码的?
可靠性保证模块 (3讲)
18 | 如何生成和解读RDB文件?
19 | AOF重写(上):触发时机与重写的影响
20 | AOF重写(下):重写时的新写操作记录在哪里?
Redis源码剖析与实战
15
15
1.0x
00:00/00:00
登录|注册

加餐2 | 用户Kaito:我是怎么读Redis源码的?

你好,我是 Kaito,也是两季 Redis 课程的课代表。今天,我想来和你分享一下我读源码的经验,希望能助力你更好地学习 Redis 源码。
首先,一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事情。可能遇到问题时,他们更倾向于去找别人分享的答案。但往往很多时候,自己查到的资料并不能帮助解决所有问题,尤其是比较细节的问题。
那么从我的实践经验来看,遇到这种情况,通常就需要去源码中寻找答案了,因为在源码面前,这些细节会变得一览无余。而且我认为,掌握读源码的能力,是从只懂得如何使用 Redis,到精通 Redis 实现原理的成长之路上,必须跨越的门槛。可是,面对庞大复杂的项目,我们怎样读源码才能更高效呢?
所以下面,我就来和你聊一聊我在读源码时的经验和心得。

找到地图

很多开源项目的源码,代码量一般都比较庞大,如果在读代码之前,我们没有制定合理的方法,就一头扎进去读代码,势必会把自己搞晕。
所以,我在拿到一个项目的代码之后,并不会马上着手去读,而是会先对整个项目结构进行梳理,划分出项目具体包含的模块。这样,我就对整个项目有了一个宏观的了解。
因为读代码就好比去一个陌生城市旅行,这个旅途过程充满着未知。如果在出发之前,我们手里能有一张地图,那我们对自己的行程就可以有一个非常清晰的规划,我们就知道,如果想要到达目的地,需要从哪里出发、经过哪些地方、通过什么方式才能到达,有了地图就有了行进方向,否则很容易迷失。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《Redis源码剖析与实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59
立即订阅
登录 后留言

精选留言(5)

  • Kaito
    很荣幸,能在第二季继续给大家带来加餐文章,分享我学习Redis的经验。

    这篇文章和大家分享我阅读源码的经验和心得,当然,文章里提到的方法是「通用」的,不仅限于读Redis代码,读任何项目的源码都可以按这个思路来,希望我的分享能够帮助到大家!
    2021-09-18
    2
    5
  • Milittle
    这个专栏可以说是有两个老师。
    2021-09-18
    1
  • Ethan New
    感谢Kaito大佬的分享,向大佬学习
    2021-09-19
  • Bruis.
    Kaito大哥,如何对Redis源码进行编译,并能在开发工具上进行debug调试呢?光看源码不debug运行感觉很多细节是没法读懂的啊。
    2021-09-18
  • 曾轼麟
    感谢Kaito同学的分享,这段时间受益良多
    2021-09-18
收起评论
5
返回
顶部