Redis网络模型是一个使用IO多路复用、单线程、非阻塞的模型。这个模型的优点在于单线程不用考虑加锁,如果在单核环境上可以将效率发挥到最大。它没有那么庞大,代码一共2000多行,因此比较容易分析,学长推荐。
另外@浅墨学长拿出了redis网络部分的代码,设计了应用层协议,添加了应用层buffer,定义了服务器类型,完成了一个基于Redis网络模型的简易网络库,我fork了一份,然后跟着学长的博客 Redis网络库源码分析 以及网上搜集的资料,把这部分的源码根据自己的理解分析了一下,添加了很多注释,扔到我的git上,大概了解了服务端的工作过程,分享出来以供大家参考与我后期的回顾。
附上链接:Redis网络库源码浅解
参考资料:
什么是 Event Loop?
杨博东的博客