美文网首页
Redis 3.0 源码阅读参考

Redis 3.0 源码阅读参考

作者: wayyyy | 来源:发表于2021-09-02 01:29 被阅读0次

    《Redis设计与实现》一书作者提供了3.0的注释的版本:https://github.com/huangz1990/redis-3.0-annotated

    同时 知乎有个答主整理了 redis 源码阅读顺序:

    • 第一阶段 阅读 Redis 的数据结构部分,基本位于如下文件中:

      • 内存分配 zmalloc.c 和 zmalloc.h
      • 动态字符串 sds.h 和 sds.c
      • 双端链表 adlist.c 和 adlist.h
      • 字典 dict.h 和 dict.c
      • 跳表 server.h 文件里面关于 zskiplist结构 和 zskiplistNode结构,以及t_zset.c 中所有 zsl 开头的函数,比如 zslCreate、zslInsert、zslDeleteNode等等。
      • 基数统计 hyperloglog.c 中的 hllhdr 结构, 以及所有以 hll 开头的函数
    • 第二阶段 熟悉 Redis 的内存编码结构

      • 整数集合数据结构 intset.h 和 intset.c
      • 压缩列表数据结构 ziplist.h 和 ziplist.c
    • 第三阶段

      • 对象系统 object.c
      • 字符串键 t_string.c
      • 列表建 t_list.c
      • 散列键 t_hash.c
      • 集合键 t_set.c
      • 有序集合键 t_zset.c中 除 zsl 开头的函数之外的所有函数
      • HyperLogLog 键 hyperloglog.c 中所有以 pf 开头的函数
    • 第四阶段 熟悉 Redis 数据库的实现

      • 数据库实现 redis.h文件中的 redisDb 结构,以及 db.c 文件
      • 通知功能 notify.c
      • RDB持久化 rdb.c
      • AOF持久化 aof.c

      以及一些独立功能模块的实现

      • 发布和订阅 redis.h 文件的 pubsubPattern 结构,以及 pubsub.c 文件
      • 事务 redis.h 文件的 multiState 结构以及 multiCmd 结构,multi.c 文件
    • 第五阶段 熟悉客户端和服务器端的代码实现

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

      这个时候可以阅读下面的独立功能模块的代码实现

      • lua脚本 scripting.c
      • 慢查询 slowlog.c
      • 监视 monitor.c
    • 第六阶段 这一阶段主要是熟悉Redis多机部分的代码实现

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

    关于 如何编译调试redis

    相关文章

      网友评论

          本文标题:Redis 3.0 源码阅读参考

          本文链接:https://www.haomeiwen.com/subject/vqkwwhtx.html