源码之前,了无秘密
此前翻译了redis.conf的配置文件,获6篇文,大家也挺喜欢的。
redis.conf翻译与配置(一)
redis.conf翻译与配置(二)
redis.conf翻译与配置(三)
redis.conf翻译与配置(四)
redis.conf翻译与配置(五)
redis.conf翻译与配置(六)
也写了一些redis实操和概念的文,反响还不错,涨了不少粉丝
带上问题来学redis,看到不吃亏(什么是redis?缓存问题、数据一致性、redis配置文件汉化版)
全面分析redis持久化机制
and so on.
之后我打开了redis/src目录,发现了“新大陆”。
我准备学习一下redis的源码,并总结我的学习笔记。
那么学习总该有个路线图,于是经过多方求教,我把那一堆上百个文件做了个初步的划分(随着学习的进度后面会再细分):
学习推进路线
受侯捷老师的《STL源码剖析》的带动,我决定先学习redis的内存分配原则,为接下来的数据结构铺平道路。
在阅读完和数据结构有关的文件之后, 接下来就应该阅读内存编码(encoding)数据结构了。
不过据说:内存编码数据结构不容易找到相关的资料, 因为这些数据结构都是 Redis 为了节约内存而专门开发出来的, 换句话说, 这些数据结构都是特制(adhoc)的, 除了 Redis 源码中的文档之外, 基本上找不到其他资料来了解这些特制的数据结构。
接下来, 为了知道 Redis 是如何通过以上提到的数据结构来实现不同类型的键, 我们需要阅读实现各个数据类型的文件, 以及 Redis 的对象系统文件。
在读完了 Redis 使用所有底层数据结构, 以及 Redis 是如何使用这些数据结构来实现不同类型的键之后, 我们就可以开始阅读 Redis 里面和数据操作有关的代码了
接下来,在阅读完数据库实现代码, 以及 RDB 和 AOF 两种持久化的代码之后, 我们可以开始阅读客户端和 Redis 服务器本身的实现代码
当然,前面阅读过程中还会需要一些配套文件的支持,碧如bio、rio等
在弄懂了 Redis 的单机服务器是怎样运作的之后, 就可以开始阅读 Redis 多机功能的实现代码了
工具类
还有一些工具类:
以及剩下的一些:
这些我可能就看看Makefile,还有那几个不知道去哪儿的能不能找到该去的地方。
前期准备工作已毕,之后就开始学习之路了。
如果有需要这套分好的文件的朋友,可以关注私信,毕竟我分这一大堆东西也不容易啊。
转载:https://blog.csdn.net/qq_43762191/article/details/108256541