redis3.0源码目录

很早就听说redis源码的严谨精妙之处了,现有一探其实质的好奇之心。现下载了它的3.0版本源码,对其目录先进行了一番浏览。

作者的注释很详细,看其文件头注释就明白该文件的作用与目的,如下是对各源文件的概括性描述:

adlist.c         // 双向链表结构,用于定义list

ae.c             // 用于事件的处理
ae_epoll.c       // 处理epoll事件
ae_evport.c      // 通过event ports实现处理接口
ae_kqueue.c      // 实现消息队列的处理
ae_select.c      // 处理select事件

anet.c           // 网络处理
aof.c            // 实现AOF模式

bio.c            // 在后台通过线程模式实现IO处理
bitops.c         // 与SETBIT,GETBIT相关的位操作
blocked.c        // 支持类似BLPOP,WAIT的阻塞操作

cluster.c        // 与集群创建,通信相关的实现
config.c         // 配置文件的解析

crc16.c          // 基于CCITT标准的过滤算法
crc64.c

db.c             // C-level数据库API实现
debug.c          // 调试库与日志输出
dict.c           // 字典实现

endianconv.c     // 主机字节序编解码, redis致力于使用little endian来编码

intset.c         // int集合类型实现

lzf_c.c          // lzf压缩算法
lzf_d.c       

memtest.c        // 内存测试

multi.c          // 批量命令操作的原子实现

networking.c     // 网络通信实现

noti.c           // 通过Pub/Sub实现的keyspace事件通知

object.c         // 对象的存储类型

pqsort.c         // 一种快速排序实现

pubsub.c         // 发布/订阅模式

rand.c           // 随机序列的生成

rdb.c            // rdb数据的load与dump

redis.c          // redis数据库的主程序入口

redis-benchmark.c  // redis基准测试入口
redis-check-aof.c  // aof文件检查入口
redis-check-dump.c // dump文件检查入口
redis-cli.c        // redis的shell客户端

release.c          // 版本发布信息

replication.c      // 数据的主从备份

rio.c              // 流式I/O的读写接口

scripting.c        // redis相关协议转换到lua环境下执行

sds.c              // 强大的字符串处理机制
sentinel.c         // redis(集群)的监护程序

setproctitle.c      // 程序名信息相关?

sha1.c             // sha1加密算法

slowlog.c          // 记录最近一段时间的查询等操作

sort.c             // 排序算法及辅助函数

syncio.c           // 同步io的实现

t_hash.c           // hash结构
t_list.c           // list结构
t_set.c            // set结构
t_string.c         // string结构
t_zset.c           // 用两种数据结构存储同一个数据体

util.c             // 辅助函数

ziplist.c          // ziplist结构
zipmap.c           // zipmap结构

zmalloc.c          // 在malloc上进行封装,增加内存开销统计


要了解其原理,还是得深入其代码学习。下一步应该可以先了解关于个数据结构的实现。

你可能感兴趣的:(NoSql)