Skip to content

Latest commit

 

History

History
85 lines (70 loc) · 2.36 KB

index.md

File metadata and controls

85 lines (70 loc) · 2.36 KB
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 事务:

  • 命令排队
  • 事务的准备
  • 空事务
  • 事务的执行
  • 事务的丢弃
  • 事务失败处理
  • 多事务支持