dot Redis 8 发布啦—而且是开源的

了解更多

前言

返回首页

前言

大约三年前,出于实际原因创建了 Redis:基本上,我试图用一个基于磁盘的 SQL 数据库来做不可能的事情。我正在处理大量写入负载,而我唯一能负担得起的硬件是一个小型虚拟化实例。

我的问题在概念上很简单:我的服务器接收来自多个网站的页面浏览流,这些网站使用小型 JavaScript 跟踪器。我需要存储每个站点的最新 n 个页面浏览量,并将它们实时显示给连接到 Web 界面的用户,同时保持一个小的历史记录。

由于峰值负载为每秒几千个页面浏览量,无论我的数据库模式是什么,无论我愿意做出什么样的权衡,我的 SQL 存储都无法在如此糟糕的硬件上处理该负载。我无法升级硬件出于成本考虑,加上我感觉处理一个固定数量的值列表不应该那么困难,这让我产生了创建一个内存数据存储的原型,它可以将列表作为本机数据类型处理,并且可以在列表的两侧进行恒定时间的弹出和推送操作。长话短说,这个概念奏效了,我用 C 语言重写了第一个原型,添加了一个基于 fork 的持久化功能,Redis 就诞生了。

快进到今天。三年后,该项目发生了重大变化。我们现在拥有一个更强大的系统,随着 Redis 2.6 的发布以及集群和 HA 功能的主要工作正在进行中,Redis 正在进入其成熟期。在我看来,Redis 生态系统中最值得注意的进步之一是其用户和贡献者社区,从 redis.io 网站到 Redis Google Group。源于 GitHub 问题系统,有成千上万的人参与到该项目中,编写客户端库,贡献修复程序并帮助其他用户。

Redis 仍然是一个社区项目:它是 BSD 许可的。没有你需要付费的闭源插件或增强版本。参考文档尽可能准确,而且非常容易获得帮助并与 Redis 开发人员或专家联系。

Redis 以一种务实的方式开始,一个程序员需要完成工作,但找不到合适的工具来完成手头的任务。这就是为什么我认为一本理论性的书对 Redis 没有好处,以及为什么我喜欢 Redis in Action:这是一本为想要完成工作的人准备的书。它不局限于对 API 的无用描述;Redis 的特性和数据类型使用引人入胜的例子进行了深入探讨。

与此同时,Redis in Action 来自 Redis 社区,更具体地说是来自在出版这本书之前,已经以许多不同的方式帮助过数百名 Redis 用户的某个人——从模式设计到硬件延迟问题。Redis Group 充满了 Josiah 的建议和贡献。

系统操作主题也被涵盖这一事实是一个很大的优势。现实情况是,大多数人既需要开发应用程序软件,也需要处理服务器的部署。而且我想说,你需要了解系统操作以及硬件和正在使用的系统软件的基本限制,才能编写出能够充分利用两者的应用程序。

这些努力的结果是一本让你以直接的方式进入 Redis 的书,将你的注意力引导到正确的方向,以避免常见的陷阱。我认为 Redis in Action 是 Redis 生态系统的一个很好的补充,并将受到 Redis 用户社区的欢迎。

Salvatore Sanfilippo
Redis 的创建者