Reids版本:3.2.11
本注释版本不会删除原始代码中的任何东西,只会增加注释。本注释版本的阅读顺序参考了如何阅读Redis源码。
本注释项目只是个人爱好,受技术水平和时间限制,出差错在所难免,有感兴趣的同学欢迎指出问题、交流和提交issue。
| 文件名 | 描述 | 完成情况 |
|---|---|---|
| adlist.h 和 adlist.c | 双端链表 | 100% |
| sds.h 和 sds.c | 简单动态字符串 | 100% |
| dict.h 和 dict.c | 字典 | 95% |
| intset.h 和 intset.c | 整数集合 | 100% |
| ziplist.h 和 ziplist.c | 压缩链表 | 100% |
| zipmap.h 和 zipmap.c | 压缩字典 | 100% |
| server.h(2.8版本之前是redis.h)中的zskiplist结构和zskiplistNode结构,以及t_zset.c中所有以zsl开头的函数 | 跳跃表 | 100% |
| 文件名 | 描述 | 完成情况 |
|---|---|---|
| object.c | Redis对象(类型)系统实现 | 100% |
| t_string.c | 字符串键的实现 | 100% |
| t_list.c | 列表键的实现 | 100% |
| t_hash.c | 散列键的实现 | |
| t_set.c | 集合键的实现 | |
| t_zset.c | 有序集合键的实现 |
| 文件名 | 描述 | 完成情况 |
|---|---|---|
| ae.h 和 ae.c | 异步I/O事件 | 100% |
| ae_select.c | Select | 100% |
| ae_epoll.c | Linux epoll | |
| ae_evport.c | 事件端口 | |
| ae_kqueue.c | Kqueue |
| 文件名 | 描述 | 完成情况 |
|---|---|---|
| anet.h 和 anet.c | Redis网络通信封装 |
| 文件名 | 描述 | 完成情况 |
|---|---|---|
| util.h 和 util.c | 一些工具函数 |
| 文件名 | 描述 | 完成情况 |
|---|---|---|
| server.h 和 server.c | Redis服务器实现 | 10% |
| db.c | C语言级别的DB API |