Redis 5设计与源码分析
上QQ阅读APP看书,第一时间看更新

1.3 Redis源码概述

Redis源代码主要存放在src文件夹中,作者没有整理这些文件,统一存放到了一个文件夹中,如图1-1所示。其中server.c为服务端程序,redis-cli.c为客户端程序。

图1-1 Redis 5.0 源码

Redis源代码的核心部分主要如下。

(1)基本的数据结构

❏ 动态字符串sds.c

❏ 整数集合intset.c

❏ 压缩列表ziplist.c

❏ 快速链表quicklist.c

❏ 字典dict.c

❏ Streams的底层实现结构listpack.c和rax.c

(2)Redis数据类型的底层实现

❏ Redis对象object.c

❏ 字符串t_string.c

❏ 列表t_list.c

❏ 字典t_hash.c

❏ 集合及有序集合t_set.c和t_zset.c

❏ 数据流t_stream.c

(3)Redis数据库的实现

❏ 数据库的底层实现db.c

❏ 持久化rdb.c和aof.c

(4)Redis服务端和客户端实现

❏ 事件驱动ae.c和ae_epoll.c

❏ 网络连接anet.c和networking.c

❏ 服务端程序server.c

❏ 客户端程序redis-cli.c

(5)其他

❏ 主从复制replication.c

❏ 哨兵sentinel.c

❏ 集群cluster.c

❏ 其他数据结构,如hyperloglog.c、geo.c等

❏ 其他功能,如pub/sub、Lua脚本

以上为Redis核心代码的简单划分,本书重点介绍Redis客户端使用命令的底层实现,在阅读后续章节时,建议按照本书编排顺序进行阅读。首先学习Redis底层的数据存储结构;然后学习Redis每个命令的具体实现;最后可以根据需要学习Redis其他方面的内容,如主从复制、哨兵、集群、持久化等。