Redis源码分析

最近用c写一个程序的时,切身体会到“书到用时方恨少”。尽管以前写程序都是用的Python、PHP、Java等,代码量量不多也不是太少,也用c写过一些小程序,但这次用c写的代码量一上来,驾驭c程序的能力略低下,程序中涉及到的一些数据结构、算法还不能轻松掌握,所以就想着如何提高自己的编程能力。前几天在写一个程序时用到了redis,以前也虽用过,但都忘的差不多了,相比其他的数据库软件的安装、配置等相对复杂的过程,redis使用可以说是“一分钟上手”,于是便喜欢上了这种即学即用,简单易用的软件。了解了redis后,其架构、思想、方法都是非常优秀的,遂打算学习下这一在DB-Engines上长时间排名前十的开源软件,研究其源代码,以此了解学习如何编写一个优秀的大中型软件,顺便可提高自己的编程能力。希望可以坚持下来。

源码分类

数据结构实现
sds.h, sds.c  动态字符串实现  
adlist.h, adlist.c  双端链表实现  
dict.h, dict.c  字典实现

内存编码数据结构
intset.h, intset.c  整数集合数据结构  
ziplist.h, ziplist.c  压缩列表数据结构

数据类型实现
object.c  redis对象系统实现  
t_string.c  字符串键的实现
t_list.c  列表键的实现
t_hash.c  散列键的实现
t_set.c  集合键的实现
t_zset.c  有序集合键的实现

数据库实现
notify.c  数据库通知功能实现
rdb.h, rdb.c  RDB持久化代码
aof.c  AOF持久化代码

客户端和服务器相关代码
ae.c, ae_*.c  事件处理器实现
networking.c  网络连接库

多机功能实现
replication.c  复制功能的代码实现
sentinel.c  Sentinel实现代码
cluster.c  集群实现代码

huangz1990/redis-3.0-annotated 
如何阅读 Redis 源码? 
redis源码解析 
Redis 设计与实现 
《Redis实战》中的 Redis 应用示例 
PengJi/redis

分享到: 更多