Redis 源码分类

文章目录

我分析的主要是redis 8.0版本src目录下的110个c文件。因为文件太多,所以需要进行分类,未来才好重点研究、各个击破。我把源码中的c文件分为了16类,未来分类研究更加高效便捷。

一、数据结构

文件 功能
adlist.c 双向链表实现
dict.c 哈希表实现
intset.c 整数集合
listpack.c 实现listpack数据结构,用来代替ziplist
quicklist.c 快速列表
rax.c 基数树
sds.c 简单动态字符串
geo.c 地理空间索引
geohash.c 地理空间索引
geohash_helper.c 地理空间索引
hyperloglog.c hyperloglog核心逻辑
ziplist.c 旧版底层数据结构
zipmap.c 旧版底层数据结构

二、彩蛋

文件 功能
lolwut.c 彩蛋
lolwut5.c 彩蛋
lolwut6.c 绘制Mandelbrot 集合或其他图案

比如第六版彩蛋是这样的:

三、类型命令

文件 功能
t_stream.c stream类型命令
t_set.c set类型命令
t_list.c list类型命令
t_zset.c zset类型命令
t_hash.c 哈希类型命令
t_string.c string类型命令

四、事件循环

文件 功能
ae.c 事件驱动循环
ae_epoll.c linux系统实现
ae_evport.c Solaris专用
ae_kqueue.c mac专用
ae_select.c 老旧linux使用
ebuckets.c 事件桶
eventnotifier.c 事件通讯器

五、内存

文件 功能
defrag.c 内存碎片整理
evict.c 内存淘汰策略
expire.c 过期键删除
zmalloc.c 内存管理
memtest.c 内存测试

六、持久化

文件 功能
aof.c aof持久化
rdb.c rdb快照
redis-check-aof.c aof修复工具
redis-check-rdb.c rdb修复工具

七、crc算法

文件 功能
crc16.c crc16校验算法
crc64.c crc64校验算法
crccombine.c CRC组合计算功能
crcspeed.c crc计算的功能优化

八、命令行

文件 功能
cli_commands.c 命令定义表
cli_common.c 命令行工具共用代码
commands.c redis命令表定义
redis-cli.c 命令行客户端
sort.c 排序命令

九、网络及IO

文件 功能
anet.c 封装网络函数
resp_parser.c 协议解析引擎
call_reply.c RESP3协议解析器
networking.c 网络与客户端管理
tls.c 传输层安全
bio.c 后台io服务
blocked.c 阻塞操作与客户端挂起管理
connection.c 连接抽象层
rio.c 基础io抽象层
syncio.c 同步IO
socket.c 连接封装
iothread.c 多线程io模型

十、算法

文件 功能
lzf_d.c LZF算法解压
lzf_c.c LZF算法压缩
sha1.c 哈希算法
sha256.c 哈希算法
siphash.c 哈希函数
pqsort.c 并行快速排序
mt19937-64.c 高质量随机数 梅森旋转算法
rand.c 实现高质量的伪随机数生成器

十一、lua脚本

文件 功能
function_lua.c lua语言函数支持
functions.c lua函数的管理层
script.c 脚本管理
script_lua.c lua环境脚本

十二、分布式

文件 功能
cluster.c 分布式集群模式功能,实现gossip协议
cluster_legacy.c 保留了一些向后兼容的函数
replication.c 主从复制功能
sentinel.c 哨兵模式

十三、调试

文件 功能
debug.c 强制触发异常等调试功能
redis-benchmark.c 压力测试工具
redisassert.c 调试与断言

十四、字符串

文件 功能
bitops.c 字符串底层二进制处理
mstr.c 标准字符串的安全加固版
strl.c 安全字符串

十五、监控

文件 功能
logreqres.c 慢查询日志实现
latency.c 延迟监控
slowlog.c 慢查询日志
sparkline.c ascii图表
tracking.c 客户端缓存跟踪
timeout.c 超时管理

十六、服务器核心

文件 功能
acl.c 访问控制,redis 6.0新增
childinfo.c 父子进程通讯
config.c 处理redis配置文件
db.c 数据库核心逻辑
endianconv.c 字节序转换
eval.c 核心执行引擎
kvstore.c 键值存储抽象
lazyfree.c 用于解决大件删除的阻塞问题
localtime.c 获取本地时间
module.c 模块系统的核心
monotonic.c 单调时钟
multi.c 事务处理
notify.c 键空间通知
object.c 对象系统
pubsub.c 发布订阅
release.c 版本与构建信息
server.c 服务器核心
setcpuaffinity.c cpu亲和性
setproctitle.c 进程名修改
syscheck.c 系统检查
threads_mngr.c 线程管理
unix.c unix系统结构
util.c 通用工具
相关推荐
广州灵眸科技有限公司7 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
二宝哥11 小时前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
oradh12 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD13 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo13 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
TlSfoward14 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记14 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘