导语

Redis已成为世界上最受欢迎的数据库之一,但当初正是因为Sanfilippo对数据库“缺乏经验”,使他敢于打破“良好”数据库工程的各种神圣规则,创建了Redis。

正文

如果Redis之父萨尔瓦多·桑菲利波普(Salvatore Sanfilippo)打算颠覆数据库市场,那么他至少本来可以拥有数据库血统的。您知道,在Oracle或SQL Server的工程领域工作了10年后,他辞职去实现自己梦想的工作。Sanfilippo说,当他于2009年开始为Redis写作时,他是数据库爱好者,并且是数据库界的新手。实际上,他对数据库的“缺乏经验”,使得他敢于打破了“良好”数据库工程的各种神圣规则。

如今,Redis已成为世界上最受欢迎的数据库之一,让我们都成为了Sanfilippo打破规则的受益者。尽管没有通过在Redis各种产品和服务上贴“ Redis Inside”标签做品宣,但是开发者们仍每天都可能使用Redis,诸如Uber,Instacart,Slack,Hulu,Twitter,Instagram 等公司正在使用它。Sanfilippo也不会告诉您应该如何使用Redis。他说:“ Redis的优势不是我的选择,而是应用程序开发人员知道该如何更好地使用它。”

为了更好地了解Sanfilippo是如何创建这种企业计算所需的这种开源组建,以及它从何而来,笔者与Redis创始人进行了交谈。

无需DBA专业知识

在撰写Redis之前,Sanfilippo也曾在安全界以及其他领域为自己正名。在安全方面,他创建了网络安全工具hping,还有Idle Scan——一种端口扫描技术。他还创建了Visitors,一个博客分析器。Jim解释器,是Tcl编程语言的一种小型实现,以及一些设备驱动程序。简而言之,他不是闲坐在那里等着光辉时刻。他很忙。

忙碌的部分原因在于他为扩大自己的创业公司所做的努力,特别是与名为lloogg.com的实时分析服务有关。Sanfilippo努力使其与关系数据库(MySQL)一起扩展。它确实有效,但是他说,与应用程序的经济性相比,10,000个用户所需的硬件数量太多了。这个想法使他感到震惊,认为采用内存方式是理想的选择,更重要的是,他的工作量(将数据推送到列表然后将其修整为固定大小)根本不适合关系模型。于是,在这个时候,他开始创建Redis。

创建Redis并不是要在不同的数据库之间进行选择。Sanfilippo必须对基础数据模型进行不同的思考。他最终建立了一个内存内NoSQL数据库,该数据库既是数据存储又是缓存,并且在此过程中破坏了各种数据库“规则”。

确实,Sanfilippo的方法遭到数据库知识分子的全面批评。首先,人们谴责Redis的内存不足。他们还取消了使用fork系统调用和使用其正文的SHA1而不是名称的 Lua脚本在磁盘上持久化的Redis模型。关于传统数据库的构建方式,他们也许是正确的。但对数据库的未来完全错误。

做女王还是国外由自己来定

Sanfilippo说,尽管数据库专家大多批评他的工作,但他却可以自由地创新一种新型的数据库。毫不奇怪,由于开放源代码长期以来一直是他的核心部分,因此他选择了开放式创新。他说:“总的来说,我相信与他人共享事物。” 根据Sanfilippo的说法,他的职业生涯是在18岁时通过安装Slackware 1.2.3产生的,他意识到里面有C编译器,并且还有更多。他说:“实际上,作为软件开发人员的整个故事都是从开源开始的,所以对我来说,这是显而易见的方式。”

但是开源不仅仅是Sanfilippo的许可问题。

Sanfilippo说:“我坚信软件是以人为本的,需要人们讲故事,所以我到处都在讲述Redis的故事。” 很快,人们开始聆听并开始拥抱Redis,最初是在开源社区里,后来是在成熟的企业里。

尽管最初,Sanfilippo注意到他比起所谓的数据库专家更重视自由,但随着时间的流逝,开源社区聚集在Redis周围。Sanfilippo表示,十年后,“ Redis核心绝对是许多人之间的协作。”

并不是说他放开了手:Sanfilippo有时承认他在分配工作方面做得很不好,以至于他仍然自己编写了Redis所有文档。

尽管Sanfilippo欢迎对社区Redis做出贡献,但他也说,社区中的好主意和坏主意混在一起。例如,某人可能正在尝试使用该软件解决不同于Sanfilippo希望征服的那些问题。同样,事实是系统软件很困难。他说:“您往往只会从大多数情况下得到报酬的人那里得到严肃的贡献,”他说,尽管当然也有例外。他承认,为像Redis这样严肃的数据库系统做贡献并不是您周日早上可以放松的事情。

Sanfilippo在过去十年中承受着很大的压力,想知道Redis是否会成功,以及他是否有足够的钱来满足自己的需求。幸运的是,他说这些担忧已经自动解决了,因为Redis越来越受欢迎。今天,Sanfilippo很幸运能够将所有的时间都花在Redis上,成为Redis Labs的雇员。只是,仍然不要期望他会告诉您如何使用Redis。

“Redis的优势不是我的选择;每个应用程序都有其目标,必须提供的保证以及对延迟和可伸缩性的关注。”Sanfilippo表示,他希望在Redis解决问题时使用它:它是一个主数据库,只是另一个数据库的索引,一些智能缓存,消息传递等等。

Sanfilippo提供了一组构建模块,而不是“预烘焙” Redis的未来,因此人们可以找到创造性组装它们的方法。这让Redis很容易修改。“因此,开发人员经常进行一些更改,使Redis进行一些原本不希望的工作。” 但Sanfilippo说,这没关系。

Sanfilippo并不认为自己是权威人士。他说:“我更喜欢设计新事物并编写代码。”如果其他人效仿,那就太好了。Sanfilippo总结说,因为使用Redis,“开发人员是女王还是国王-完全由他们自己来决定。”

Redis背后的故事相关推荐

  1. 图像处理经典图片Lena背后的故事

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 在数字图像处理中,Lena(Lenna)是一张 ...

  2. HTML5背后的故事

    乍一看,你可能觉得HTML5是网页编写语言HTML的第5个版本.但实际上,这背后的故事可乱得多. HTML5是一个叛逆.它是由一群自由思想者组成的团队设计出来的,这个团队的成员并不负责制定官方HTML ...

  3. android 新闻编辑,超机访问:ZOL手机新闻编辑背后的故事

    在上周超机访问中,我们为大家介绍了手机频道评测刘宇航和手机的故事.通过上期节目,我们对这位评测编辑以及他的工作.使用手机的偏好有了一个全面的了解.本期节目我们再次请到了中关村在线的编辑,来讲讲他和手机 ...

  4. 我眼中的计算机,我眼中的计算机-计算机开机背后的故事

    我眼中的计算机-计算机开机背后的故事 (20页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 ? 我们每天使用计算机必 须要做的第一件事就 ...

  5. 【下载】《看见新力量》第二期,带你走进数十位科技创业者背后的故事

    简介:这是一本正在进行中的科技创业者的记录,书中涉及的创业者还都奔跑在路上.然而,他们的所思所做,已足以令一些产业发生微小而有效的变化,令数字经济时代下人们的生活变得更加智能.阿里云创新中心作为科技创 ...

  6. 用“连接”勾勒角色:《死亡搁浅》亡人的设计及其背后的故事谜题

    死亡搁浅,名为"连接"的世界观 小岛秀夫是一个十分注重游戏制作细节的人,我们没有理由不去相信,他勾勒出的恢弘世界观框架下,每一个角色的存在背后都有着极为精细和巧妙的设计.多数时候也 ...

  7. 剑网三《谢云流传》,展现的庞大世界观,背后的故事如何?

    像一些剑网3的新玩家应该不太了解,谢云流传这样一个基于剑网三网络版的庞大世界观.我们还是要去深入地认识它里面的内容,而且在这一个剧情里面我们会看到更好看的内容,体验更好的游戏体验.只是这一部分老玩家可 ...

  8. 【今晚七点半】:对话平行未来姜雨晴——重启熊猫直播背后的故事

    点击上方"LiveVideoStack"关注我们 "关于熊猫直播的回忆,2019年3月,雨晴找我投了一篇稿子,关于P2P网络.我记得有同学留言,熊猫直播的存在就是养活了许 ...

  9. CSDN《某一程序员竟然吃过shi?让我们走进他的生活,揭露背后的故事》

    CSDN<某一程序员竟然吃过屎?我们走进他的生活,揭露背后的故事> ----------接下来让我们走进他的故事 到底是什么原因让他吃屎 这是这位程序员的自曝,我很好奇的不是他吃过屎,我在 ...

最新文章

  1. LeetCode 电子书!
  2. 发现不错的文章,推!
  3. tcl mysql_MySQL·TCL语言
  4. C++实现链式存储二叉树
  5. 滴滴CTO五轮面试真是太刺激了,Java高级工程师一二三四五面面经(已拿到offer)...
  6. 美女面试官问我Python如何优雅的创建临时文件,我的回答....
  7. 用css实现模仿火狐社区的一个提示框
  8. JAVA WEB 对返回数据进行按中文名称首字母A~Z升序排序
  9. 年轻人“躺平”的生活方式,引起不少争议
  10. linux 命令行参数解析,Linux C下的命令行参数解析
  11. php导出word乱码,php导出的word会乱码吗
  12. UVM – Stop Hitting Your Brother Coding Guidelines
  13. 哥德巴赫猜想(java)
  14. CSS预处理器之Sass与Less
  15. 计算机网络socket翻译成中文,Socket的错误码和描述(中英文翻译)
  16. AVL CRUISE硬件在环台架测试
  17. ReactNative进阶(三十一): IoC 框架 InversifyJS 解读
  18. link和@import的区别:
  19. ARQ自动重传协议模拟
  20. LaTeX 关于缩进的设置取消默认的段落前的首行缩进

热门文章

  1. Ubuntu16.04 - 安装RabbitVCS,linux下的TortoiseSVN!!!
  2. 斯坦福大学Andrew Ng - 机器学习笔记(8) -- 推荐系统 大规模机器学习 图片文字识别...
  3. C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别
  4. xp下设置文件的权限(转)
  5. pta l2-6(树的遍历)
  6. 第 133 章 FAQ
  7. 段落排版--行间距, 行高(line-height)
  8. iOS-数据持久化-偏好设置
  9. ubuntu安装phpmyadmin
  10. 如何使用 Linq 获取每个分组中的第一个元素?