[Redis源码系列]在Liunx安装和常见API
redis
Redis是使用C写的,而C中根本不存在string,list,hash,set和zset这些数据类型,那么C是如何将这些数据类型实现出来的呢?对于常见的复制,通知,哨兵,集群等功能,又是如何实现的。源码分析
Redis代码规模小,文件数量也很少,因此开始对Redis源码进行分析。post
首先去官网下载文件,下载完解压便可,咱们是对src中的文件进行分析。学习
还要下载个查看源码的工具,我使用的是DEV C++,虽然很差使,可是能使。使用啥工具,本身看就行。spa
先肯定下针对学习路线:3d
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
string的封装 t_string.c
list的封装 t_list.c
hash的封装 t_hash.c
set的封装 t_set.c
zset的封装 t_zset.c
对象系统 object.c
RDB持久化 rdb.h和rdb.c
AOF持久化 aof.c
通知功能 notify.c
事务处理模块 ae.h , ae.c,ae_epoll.c,ae_evport.c,ae_kqueue.c,ae_select.c
replication.c
sentinel.c
cluster.h和cluster.c
若是以为写得还行,麻烦给个赞👍,您的承认才是我写做的动力!
若是以为有说的不对的地方,欢迎评论指出。
好了,拜拜咯。