欢迎光临!
若无相欠,怎会相见

翻译 – Build Your Own Redis with C/C++ – 01

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

本书的内容和源代码可通过以下网址在线浏览:

https://build-your-own.org

结语

本人正在学习这本小书, 但是是英文版的, 没找到中文版, 就自个随便翻译并记录在自己的 Blog 中。

如有错误, 敬请指出, 感谢指正!   — 2024-09-25  23:13:58

 

赞(0) 打赏
转载请注明:飘零博客 » 翻译 – Build Your Own Redis with C/C++ – 01
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

欢迎光临