用Go实现Redis之五持久化

2018-06-18
阅读 3 分钟
6k
BGSAVE和SAVE命令生成RDB文件,存储数据库信息。当服务器启动,RDB文件也会作为原始数据,加载近服务内存。这里存在一个优先级问题——当AOF持久化是打开状态,优先从AOF文件加载数据、还原数据库状态。

用Go实现Redis之四实现Redis的协议交互

2018-06-18
阅读 6 分钟
7.1k
在前三篇文章中,实现了客户端/服务端的交互(基于textprotoco)、服务端初始化和get/set命令。如果阅读过或者调试过粗略的代码实现,会发现使用文本协议进行交互,除了容易阅读之外,解析效率是比较低下的。因为我们的示例是"set alpha 123n",工整的单个空格和n分割,可能在分割上效率还好;既要分割,不免低效。

用Go实现Redis之三get/set命令实现

2018-06-13
阅读 4 分钟
5.5k
前一篇文章实现了客户端/服务端的交互。这一篇,主要介绍get/set命令的实现。命令本身比较简单,支撑命令的整个系统基础比较麻烦。本文会介绍get/set操作涉及的组件和模块,并适当简化,最后实现功能。

用Go实现Redis之二客户端/服务端交互

2018-06-08
阅读 4 分钟
6.9k
在这个系列文章里,尽量减少介绍Golang语法、C语言语法和redis原理,聚焦在“用Golang实现Redis”的主题上。其中如有疏漏、不足,还请指正。

用Go实现Redis之一准备工作

2018-06-05
阅读 2 分钟
10.2k
最近公司的第一个PHP转GO项目已经在生产环境稳定运行数周,又逢需求小年儿,最近可以得空分享下去年学GO过程中的练手项目Godis——用Golang实现的Redis.