Redigo
Redis 是一个开源的内存数据库,它可以存储键值对数据,支持多种数据结构,如字符串、列表、集合、有序集合等。
本系列将使用 Go 语言复刻 Redis 的部分功能,以此来学习 Go 语言的基础知识。
我们要做的是:
-
构建一个允许您使用字符串和散列的 Redis 克隆。
-
编写一个解析器来理解 RESP,它允许服务器接收命令并以响应的形式进行回复。
-
使用 goroutine 来同时处理多个连接。
-
使用追加唯一文件(AOF)将数据写入磁盘,这是 Redis 用于持久化的方法之一。这样,如果服务器崩溃或重启,我们可以恢复数据。
预备知识
- Go 语言基础
- 了解 Redis
- 了解网络编程
- Git 基础
Git Commit 规范
类型 | 描述 |
---|---|
feat | 新功能 |
fix | 修复 bug |
docs | 文档修改 |
style | 代码格式(不影响代码运行的变动) |
refactor | 重构(即不是新增功能,也不是修改 bug 的代码变动) |
perf | 性能优化 |
test | 增加测试 |
chore | 构建过程或辅助工具的变动,或其他杂项 |
示例:
- 当我们添加一个新功能时,我们可以使用
feat: 添加xx功能
来提交。- 对不同的模块,我们可以使用括号来区分,比如
feat(auth): 添加xx功能
。
- 对不同的模块,我们可以使用括号来区分,比如
- 当我们修复一个 bug 时,我们可以使用
fix: 修复 bug
来提交。 - 当我们修改文档时,我们可以使用
docs: 修改文档
来提交。 - 当我们修改代码格式时,我们可以使用
style: 修改代码格式
来提交。 - 当我们重构代码时,我们可以使用
refactor: 重构代码
来提交。 - 当我们优化代码性能时,我们可以使用
perf: 优化代码性能
来提交。 - 当我们增加测试时,我们可以使用
test: 增加测试
来提交。 - 当我们修改构建过程或辅助工具时,我们可以使用
chore: 修改构建过程或辅助工具
来提交。
Last updated on