redis 源码讲解开篇

嗨,终于开始《redis源码解读》系列文章 – 开篇。大概说的下我的情况,工作中写的都是php代码,算是完全一个PHPer;但在大学学习编程的入门是 C语言,对C还算是喜欢。说来惭愧,工作中一直写的是php,入门的语言拿来荒废了,工龄越长,才越来体会到C的重要性。但还好,C还能看懂,顺便把心中积压已久的想法去执行下,一来可以练习查看源代码能力,还有希望可以给想深入学习redis源码的伙伴一些独特的帮助,或让想学习数据结构的同学有个很好的学习资料。

简单介绍下,我要如何来解读redis源码。我会进行源码的拆分,把它们可以独立出来的代码都一个一个剥离出来,然后来单独的运行测试与讲解它们。

如果你对redis的代码结构略知一二的话,你也许大概知道redis源码层次是挺分明的。根据资料,我们将redis做如下分解:

  1. 数据结构
  2. 内存编码数据结构
  3. 数据类型
  4. 数据库
  5. 客户端和服务器
  6. 多机功能
    redis 源码讲解开篇_第1张图片

为什么这么进行划分的呢,请看 如何阅读 Redis 源码 这篇博文,你就能明白了。如果还想更加系统的了解 redis 实现原理,推荐看<>。下面是数据结构所包函的文件,及文件的内容:

  1. Redis 源码中, 各个数据结构的实现文件:
文件 内容
sds.h 和 sds.c Redis 的动态字符串实现
dict.h 和 dict.c Redis 的字典实现
redis.h 中的 zskiplist 结构和 zskiplistNode 结构, 以及 t_zset.c 中所有以 zsl 开头的函数, 比如 zslCreate 、 zslInsert 、 zslDeleteNode ,等等 Redis 的跳跃表实现
hyperloglog.c 中的 hllhdr 结构, 以及所有以 hll 开头的函数 Redis 的 HyperLogLog 实现

在这,只罗列出数据结构相关的所有文件,想查看其余部分,请继续阅读 如何阅读 Redis 源码 这篇博文。数据结构是我们了解redis实现的第一步,通过剥离出它们,并让其单独运行起来,从而让我们有个比较真实的体会。
开篇博文,内容相对简短,待后续完善。我会在此文的后面罗列出此系列的文章目录。

  • 数据结构
    • 动态字符串 – SDS
    • 双链表 – adlist

你可能感兴趣的:(redis,C,redis源码,C,数据结构,redis)