为什么要从Redis源码分析

前言

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

Redis代码规模小,文件数量也不多,所以开始对Redis源码进行分析。

准备工作

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

还要下载个查看源码的工具,我使用的是DEV C++,虽然不好使,但是能使。使用啥工具,自己看就行。

确定学习路线

先确定下针对学习路线:

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

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

 

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

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

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

结语

如果觉得写得还行,麻烦给个赞👍,您的认可才是我写作的动力!

如果觉得有说的不对的地方,欢迎评论指出。

好了,拜拜咯。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值