Redis学习笔记

面试中被问到有没有关注过一些热门的开源项目,比如nginx和Redis,对它们的底层实现有什么了解。
很尴尬,自己只知道一些很肤浅的东西,于是就尝试去了解更多。

肤浅的东西

nginx是一个用C编写的Web服务器,主要特点是高性能和支持高并发。
之前搜索反向代理时找到的Apache相关内容比较少,大部分都是使用的nginx,所以觉得它在反向代理、负载均衡方面会用的比较多。
自己尝试搭建直播服务器时看到过很多nginx-rtmp-module的内容,对nginx添加模块时需要自己重新编译有一点印象。

Redis是一个用C编写的非关系型数据库,主要特点是高性能和基于内存。
MySQL像是把数据存到一张表里,每一列是一个属性,每一行是一项,而Redis则像是把数据存储到一个变量里,key是变量的名称,value是变量的值。

尝试了解更多

先在实验楼里跟着Redis基础教程做了一遍,对Redis有了一个初步的了解。然后准备按照给自己提问题 => 解决自己的问题的步骤循序渐进地了解更深层次的知识,所以本篇学习笔记就是记录下自问自答的过程。

此时Redis官网稳定版本为5.0.4,主要参考资料为官方文档和机械工业出版社的《Redis设计与实现》,查看的源码直接clone自GitHub上的unstable分支。