redis
redis是一个内存的nosql数据库,因为是c实现的所以速度相对较快,
源码结构并不负责,我这里重点分析结构和重要的几个类,其余的大家可以自己去看。
redis服务的主程序就是server类,该类启动时首先初始化一些信息,包括配置和扩展,然后初始化server,server会启动一个tcp服务,tcp的流映射到一个fd,fd被映射的fileEvent上,每次生成一个command
执行一次任务并返回就过给client。
cluster是用于管理集群模式的,在集群模式下一个server可以被认为是一个clusterNode。然后一些互相链接的node会选出一个master,读取数据时只能跟master通信,master负责找到指定key应该在那个node中,
每个node维护若干个slot每个slot下可以存若干个key,key与slot直接存在一个换算关系。
db即数据存放的最终位置了,当然它在内存里。db下包含了dict,expries等一系列 map,expries保存key和过期时间,server会有定时程序和watcher来处理这些过期key,watcher是监视key过期和处理客户端回调的。