title | layout | nav_order |
---|---|---|
概览 |
default |
1 |
旨在从 0 到 1 实现一个基础的 redis-server 版本。其包含:
- 解析标准的 Redis 协议;
- 实现 Redis 基础的存储、查询、更新、删除;
- 基于 RDB 格式的 Redis 持久化
- 支持Redis 的主从复制;
- Redis 流的存储、查询;
- Redis 多事务的提交、执行、回滚
提供完整的参考代码,包括完整的代码提交历史记录。参考代码使用 Rust 实现,因此也是实践 Rust 的一个好机会。但也并不限制语言,同时也能对非 Ruster 提供参考
- 编程是练会的不是学会的
- 模仿是学习中必不可少的部分
- 通过造轮子的方式学习
- 深入理解技术原理
- 可以让你更清楚地理解这些工具的背后逻辑
- 能让你在排查问题时更有洞察力
- 培养问题拆解和解决能力:对于解决复杂的软件工程问题非常重要
- 提升代码设计和优化能力:增强对不同设计模式和编程范式的理解
- 帮助理解复杂系统的全貌
- 激发创造力
- 增强对技术的自信
- 学习适应低层次开发
- 深入理解技术原理
- 选取 Rust 的原因
- 性能适配底层开发
- 便捷的包管理工具
- 相信 Rust 光明的前景
持续更新中,皆是会对一下章节附上索引链接
基础功能:
- redis 请求命令的监听
- 处理基本的 redis 命令
- 多请求的并发处理
- 解析 Redis 协议
- 使用标准的 Redis 协议与标准 redis client 进行通信
- 基本的数据存储、查询、更新、删除
基于 RDB 的 Redis 持久化:
- Redis 持久化方案介绍
- RDB 文件的格式介绍
- RDB 文件的解析
- 由 RDB 文件初始化 Redis
RDB 和 Redis 的主从复制:
- 主节点的配置和启动
- 从节点的配置和启动
- 主从节点建立链接
- RDB 文件的主从传输
- 主节点的单命令传输
- 主主节点的多命令传输
- 从节点的命令处理
Redis 流 (Stream):
- Redis Stream 简介
- Stream offset id 验证
- 自动生成 offset id
- 单 stream 的范围查询
- 单 stream 的单点查询
- 多 stream 的单点查询
- stream 的阻塞读取
- stream 带超时的阻塞读取
Redis 事务:
- 命令排队
- 事务的准备
- 空事务
- 事务的执行
- 事务的丢弃
- 事务失败处理
- 多事务支持