为何要从Redis源码分析

redis源码分析系列文章

[Redis源码系列]在Liunx安装和常见API  
redis

String底层实现——动态字符串SDS
工具

前言

Redis是使用C写的,而C中根本不存在string,list,hash,set和zset这些数据类型,那么C是如何将这些数据类型实现出来的呢?对于常见的复制,通知,哨兵,集群等功能,又是如何实现的。源码分析

Redis代码规模小,文件数量也很少,因此开始对Redis源码进行分析。post

准备工做

首先去官网下载文件,下载完解压便可,咱们是对src中的文件进行分析。学习


还要下载个查看源码的工具,我使用的是DEV C++,虽然很差使,可是能使。使用啥工具,本身看就行。spa

肯定学习路线

先肯定下针对学习路线:3d

1.第一阶段 各类数据类型的底层实现

string的底层实现 SDS sds.h和sds.c
cdn



list的底层实现 adlist.h和adlist.c 对象


hash的底层实现 dict.h和dict.c blog


hash和list的底层实现 ziplist.h和ziplist


zset的底层实现 skiplist.h和skiplist.c


set的底层实现 intset.h和intset.c


2.第二阶段 redis 对底层实现的封装

string的封装 t_string.c

list的封装 t_list.c

hash的封装 t_hash.c

set的封装 t_set.c

zset的封装 t_zset.c


对象系统 object.c

3.第三阶段 Redis的持久化机制

RDB持久化 rdb.h和rdb.c

AOF持久化 aof.c

4.第四阶段 通知

通知功能 notify.c

5.第五阶段 熟悉客户端和服务端的代码实现

事务处理模块 ae.h , ae.c,ae_epoll.c,ae_evport.c,ae_kqueue.c,ae_select.c


6.第六阶段 Redis的复制

replication.c

7.第七阶段 Redis哨兵

sentinel.c

8.第八阶段 Redis集群

cluster.h和cluster.c

结语

若是以为写得还行,麻烦给个赞👍,您的承认才是我写做的动力!

若是以为有说的不对的地方,欢迎评论指出。

好了,拜拜咯。

求个关注