【redis架构系列】redis v5.0服务端的启动过程

redis5.0服务端启动过程

Redis源码阅读参考(来源于网络)

1.基础数据结构

  • 内存分配 zmalloc.h、zmalloc.c
  • 简单动态字符串 sds.h、sds.c
  • 双端链表 adlist.h、adlist.c
  • 字典dict.h、dict.c
  • 跳跃表server.h、(zskiplist以及zskiplistNode结构)、t_zset.c
  • 整数集合intset.h、intset.c
  • 压缩列表ziplist.h、ziplist.c
  • 压缩字典 zipmap.h、zipmap.c
  • 快速链表 quicklist.h、quicklist.c
  • 基数统计 hyperloglog.c(hllhdr结构, hll 开头的函数)
  • geohash geohash.h、geohash.c

2.Redis数据类型

  • 对象系统 object.c
  • 字符串键 t_string.c
  • 列表建 t_list.c
  • 哈希键 t_hash.c
  • 集合键 t_set.c
  • 有序集合键 t_zset.c(除zsl开头的所有函数)
  • HyperLogLog键 hyperloglog.c(pf开头的函数)
  • 地理位置 geo.h、geo.c

3.Redis数据库

  • 数据库实现 db.c
  • 通知功能 notify.c
  • RDB持久化 rdb.h、rdb.c
  • AOF持久化 aof.c

4.客户端/服务端

  • 事件处理模块 ae.h、ae.c、ae_epoll.c、ae_evport.c、ae_kqueue.c、ae_select.c
  • 网路链接库 anet.h、anet.c、networking.c
  • 服务器端 server.h、server.c
  • 客户端 redis-cli.c

5.分布式Redis

  • 复制功能 replication.c
  • Redis哨兵 sentinel.c
  • Redis集群 cluster.h、cluster.c

6.独立功能模块

  • 发布和订阅 pubsub.c
  • 事务 multi.c

7.测试

  • 内存检测 memtest.c
  • redis性能测试 redis_benchmark.c
  • 更新日志检查 redis_check_aof.c
  • 本地数据库检查 redis_check_rdb.c
  • C风格的小型测试框架 testhelp.c

8.工具类

  • 二进制位操作命令 bitops.c
  • 调试 debug.c
  • 高低位转换 endianconv.h、endianconv.c(适配不同系统)
  • 辅助于命令的提示信息 help.h
  • 压缩算法 lzf.h、lzf_c.c、lzf_d.c、lzfP.h
  • 随机数 rand.h、rand.c
  • 版本发布 release.c
  • sha加密算法 sha1.h、sha1.c
  • 通用工具类 util.h、util.c
  • 循环冗余校验 crc16.c、crc64.h、crc64.c
  • SORT命令 sort.c
  • 伪随机函数 siphash.c
  • 进程信息操作 setproctitle.c
  • geo工具类 geohash_helper.h、geohash_helper.c

9.封装类

  • 后台线程I/O bio.h、bio.c
  • 延迟类 latency.h、latency.c
  • 排序算法类 pqsort.h、pqsort.c
  • Redis定义的I/O类 rio.h、rio.c
  • 同步Socket和文件I/O操作 syncio.c

10.其他

  • 微线图 sparkline.h、sparkline.c
  • 慢日志 slowlog.h、slowlog.c
  • 脚本 scripting.c
  • 过期机制 expire.c