• Stars
    star
    10,044
  • Rank 3,474 (Top 0.07 %)
  • Language
    C
  • License
    BSD 3-Clause "New...
  • Created over 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

带有详细注释的 Redis 3.0 代码(annotated Redis 3.0 source code)。

Redis 3.0 源码注释

本项目是注释版的 Redis 3.0 源码, 原始代码来自: https://github.com/antirez/redis

这份注释是我在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。

在注释的过程中, 除了少量空格和空行方面的调整外, 没有对原始代码进行任何其他改动, 最大程度地保证了代码的“原汁原味”。

希望这份注释源码能给大家学习和了解 Redis 带来一点帮助。

另外, 新版《Redis 设计与实现》正在各大网店发售中, 希望大家可以多多支持这本书。

Have fun!

黄健宏(huangz)
2014 年 6 月 28 日

附录:各个源码文件的作用简介

文件 作用
adlist.cadlist.h 双端链表数据结构的实现。
ae.cae.hae_epoll.cae_evport.cae_kqueue.cae_select.c 事件处理器,以及各个具体实现。
anet.canet.h Redis 的异步网络框架,内容主要为对 socket 库的包装。
aof.c AOF 功能的实现。
asciilogo.h 保存了 Redis 的 ASCII LOGO 。
bio.cbio.h Redis 的后台 I/O 程序,用于将 I/O 操作放到子线程里面执行, 减少 I/O 操作对主线程的阻塞。
bitops.c 二进制位操作命令的实现文件。
blocked.c 用于实现 BLPOP 命令和 WAIT 命令的阻塞效果。
cluster.ccluster.h Redis 的集群实现。
config.cconfig.h Redis 的配置管理实现,负责读取并分析配置文件, 然后根据这些配置修改 Redis 服务器的各个选项。
crc16.ccrc64.ccrc64.h 计算 CRC 校验和。
db.c 数据库实现。
debug.c 调试实现。
dict.cdict.h 字典数据结构的实现。
endianconv.cendianconv.h 二进制的大端、小端转换函数。
fmacros.h 一些移植性方面的宏。
help.h utils/generate-command-help.rb 程序自动生成的命令帮助信息。
hyperloglog.c HyperLogLog 数据结构的实现。
intset.cintset.h 整数集合数据结构的实现,用于优化 SET 类型。
lzf_c.clzf_d.clzf.hlzfP.h Redis 对字符串和 RDB 文件进行压缩时使用的 LZF 压缩算法的实现。
MakefileMakefile.dep 构建文件。
memtest.c 内存测试。
mkreleasehdr.sh 用于生成释出信息的脚本。
multi.c Redis 的事务实现。
networking.c Redis 的客户端网络操作库, 用于实现命令请求接收、发送命令回复等工作, 文件中的函数大多为 write 、 read 、 close 等函数的包装, 以及各种协议的分析和构建函数。
notify.c Redis 的数据库通知实现。
object.c Redis 的对象系统实现。
pqsort.cpqsort.h 快速排序(QuickSort)算法的实现。
pubsub.c 发布与订阅功能的实现。
rand.crand.h 伪随机数生成器。
rdb.crdb.h RDB 持久化功能的实现。
redisassert.h Redis 自建的断言系统。
redis-benchmark.c Redis 的性能测试程序。
redis.c 负责服务器的启动、维护和关闭等事项。
redis-check-aof.credis-check-dump.c RDB 文件和 AOF 文件的合法性检查程序。
redis-cli.c Redis 客户端的实现。
redis.h Redis 的主要头文件,记录了 Redis 中的大部分数据结构, 包括服务器状态和客户端状态。
redis-trib.rb Redis 集群的管理程序。
release.crelease.h 记录和生成 Redis 的释出版本信息。
replication.c 复制功能的实现。
rio.crio.h Redis 对文件 I/O 函数的包装, 在普通 I/O 函数的基础上增加了显式缓存、以及计算校验和等功能。
scripting.c 脚本功能的实现。
sds.csds.h SDS 数据结构的实现,SDS 为 Redis 的默认字符串表示。
sentinel.c Redis Sentinel 的实现。
setproctitle.c 进程环境设置函数。
sha1.csha1.h SHA1 校验和计算函数。
slowlog.cslowlog.h 慢查询功能的实现。
solarisfixes.h 针对 Solaris 系统的补丁。
sort.c SORT 命令的实现。
syncio.c 同步 I/O 操作。
testhelp.h 测试辅助宏。
t_hash.ct_list.ct_set.ct_string.ct_zset.c 定义了 Redis 的各种数据类型,以及这些数据类型的命令。
util.cutil.h 各种辅助函数。
valgrind.sup valgrind 的suppression文件。
version.h 记录了 Redis 的版本号。
ziplist.cziplist.h ZIPLIST 数据结构的实现,用于优化 LIST 类型。
zipmap.czipmap.h ZIPMAP 数据结构的实现,在 Redis 2.6 以前用与优化 HASH 类型, Redis 2.6 开始已经废弃。
zmalloc.czmalloc.h 内存管理程序。

More Repositories

1

annotated_redis_source

带有详细注释的 Redis 2.6 源码
C
2,331
star
2

redis

《Redis Command Reference》全文的中文翻译版。
HTML
1,756
star
3

real-world-haskell-cn

《Real World Haskell》中文翻译项目
Haskell
1,554
star
4

redisbook

《Redis 设计与实现》(网络版)的书稿源码
TeX
1,507
star
5

SICP-answers

我的 SICP 解题集
Scheme
881
star
6

riacn-code

《Redis实战》一书的相关源码。
Python
336
star
7

cngolib.com

Go 标准库中文文档
HTML
250
star
8

redis-manual-code

《Redis使用手册》的随书示例代码。
Python
169
star
9

redis-mindmap

Redis 命令脑图
125
star
10

clojure_api_cn

Clojure API 文档的中文翻译版
HTML
124
star
11

reading_redis_source

Redis 源码阅读
C
111
star
12

postgresql-mindmap

收集我做的一些PostgreSQL脑图。
71
star
13

python-mindmap

Python相关脑图资源库。
66
star
14

ooredis

基于 redis-py 之上的一个 Mapper ,让你以更 pythonic 的方式来操作 Redis 。
Python
63
star
15

note

我的个人笔记。
C
58
star
16

redisbook1e-gallery

《Redis 设计与实现》图片集 & 图片源码
Python
53
star
17

pgsqlcn

《PostgreSQL手册》中文翻译项目
HTML
45
star
18

DisqueBook

《Disque 使用教程》
HTML
36
star
19

storm_orm_tutorial_cn

Python Storm ORM 库 Tutorial 中文版。
Python
23
star
20

A-Gentle-Introduction-To-Haskell-Chinese-Edition

Haskell官方教程的中文翻译版。
Python
19
star
21

spring

《SICP 解题集》所使用的 Sphinx 样式。
17
star
22

der

《Redis 设计与实现》所使用的 sphinx 样式。
CSS
17
star
23

redis-cheatsheet

《Redis 命令速查表》
14
star
24

LearnRedis-website

《Redis入门与实战》的读者服务网站。
HTML
14
star
25

riacn-website

《Redis 实战》的支持网站
Python
14
star
26

2017-guangzhou-gopher-meetup

这是我在 2017 年 9 月 9 日广州 Gopher meetup 演讲时的演讲稿以及代码,演讲视频请见:http://www.itdks.com/dakashuo/new/eventlist/detail/1262 ,其他演讲者的演讲稿请见:https://github.com/gopherchina/meetup/tree/master/Guangzhou/20170909
Go
14
star
27

postgresql-doc-cn

PostgreSQL 数据库中文手册
Python
14
star
28

GPWG-website

《Get Programming with Go》中文版的读者服务网站。
HTML
13
star
29

redisbook1e

新版《Redis 设计与实现》的支持网站。
Python
12
star
30

redis_cookbook

自己撰写的一些关于Redis用例的文章,目前停滞中。。。
Python
12
star
31

SimpleMQ

SimpleMQ 是一个简单易用的消息队列(MQ,message queue)库,使用 Python2 写成,以 Reids 作为后端。
Python
8
star
32

redis_lock_algorithm

使用 redis 构造锁
Ruby
8
star
33

real_world_haskell_note

《Real World Haskell》的读书笔记。
Python
8
star
34

redis-manual-errata

《Redis使用手册》的勘误页面。
7
star
35

postgresql-notes

个人的一些PostgreSQL小笔记
6
star
36

gwpcn-translation-manuscript

《Go Web 编程》的翻译手稿集。
5
star
37

huangz.works

个人主页
HTML
5
star
38

redis-manual-website

《Redis使用手册》一书的读者服务网站。
Python
5
star
39

shame-on-you

Ansi Common Lisp 协作翻译项目被恶意转载的邮件通讯记录
4
star
40

experiment-redis

Redis fork for experiment propose / 实验用 Redis 。
C
3
star
41

ooredis_doc

OORedis 项目的文档
Python
3
star
42

gist

主要用来存放一些临时使用的小脚本。
Python
3
star
43

autistic

Autistic 是一个用 Neo4j 实现基本社交关系的库。
Clojure
3
star
44

testing_github

hey, mom, i'm hosting code in github now!
2
star
45

redis-usage-collection

《Redis经典应用实例》的随书源码。
2
star
46

gwp

《Go web 编程》读者服务网站。
HTML
2
star