01. 引言
这本书是关于什么的?
这本书包含了一个类似 Redis 服务器的简单实现的逐步演练。 本书旨在作为网络编程和 C 语言基本数据结构的实现和应用的实用指南或教程。
从这本书可以学到什么?
Redis 可以被认为是经得起时间考验的现代计算的基石之一。 构建一个这样的项目所需的知识比通常的应用程序级开发更广泛, 更深入。 学习这样的项目是一个让软件开发者提升他们技能的好方法。
Redis 是一个很好的学习目标, 因为它涵盖了软件工程的两个重要主题: 网络编程和数据结构。
- 虽然有很多关于 socket API 或者高级 Library 的指南, 然而网络编程不仅仅是调用 API 或 Library。 理解本书涵盖的事件循环, 协议, 定时器等核心概念非常重要。 缺乏理解可能会导致致命的错误, 即使你只是在应用程序中使用高级网络库或框架。
- 尽管很多人从教科书中学习过一些基本的数据结构, 但仍然有更多的东西需要学习。 数据结构在真实项目的实现经常有一些课本中没有提及的实际考虑。 从如何在非玩具环境(特别是 C )中构建 Redis 学习数据结构是一个很独特的体验。
像大多数现实世界中的项目一样, Redis 是一个经过大量努力构建的复杂项目, 初学者很难掌握。 相反, 这本书采取了相反的方法: 通过从头开始构建东西来学习。
为什么从头开始?
有以下几点:
- 学习速度更快。 通过从头开始构建, 可以逐步引入概念。 从小处着手, 逐步添加内容, 最终获得全局。
- 学习更深入。 虽然有很多资料解释了现有的东西是如何工作的, 但通过阅读这些资料获得的理解往往与自己动手制作的东西不一样。 我们很容易把死记硬背误认为是理解, 也很容易记住不重要的细节, 而不是原理和基础知识。
- 了解更多信息。 “从零开始” 的方法迫使你接触该主题的方方面面 — 知识没有捷径可走! 而且, 往往不是每个方面都是你事先知道的, 你可能会在学习过程中发现 “我不知道我不知道的东西”。
用费曼的一句话来概括:“我无法创造的东西,我就不明白”。
如何使用本书?
本书采用循序渐进的方法。 每一步都在前一步的基础上, 增加了一个新的概念。 网页上提供了完整的源代码供参考, 建议读者自行修补或 DIY。
代码写得尽可能直接明了。 它主要是纯 C 语言, 只有极少的 C++ 功能。 如果你不懂 C 语言, 也不用担心, 你只是有机会自己用另一种语言来完成它。
最终的结果是, 只需大约 1200 行代码就能实现一个微型 Redis。1200 LoC 看起来很低, 但它说明了本书试图涵盖的许多重要方面。
书中使用的技术和方法与真实的 Redis 并不完全相同。 有些是有意简化的, 有些则是为了说明一个一般性主题而选择的。 通过比较不同的方法, 读者可以学到更多知识。
本书中使用的代码只能在 Linux 上运行, 可在此 URL 下载:
https://build-your-own.org/redis/src.tgz
本书的内容和源代码可通过以下网址在线浏览:
结语
本人正在学习这本小书, 但是是英文版的, 没找到中文版, 就自个随便翻译并记录在自己的 Blog 中。
如有错误, 敬请指出, 感谢指正! — 2024-09-25 23:13:58
最新评论
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了
看到下面的链接了,不用了。