Redis背后的故事

导语

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,“开发人员是女王还是国王-完全由他们自己来决定。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++实现AOE网中的关键路径算法(邻接表存储)

代码如下: #include <iostream> #include <stack> #include <string> using namespace std; const int N 10010; using vnodeType int;typedef struct Node {int adj;int tw;//弧的时间权值Node *next; }Node;typedef struct Vnode {vnodeType v;//存储图…

Minimal Square CodeForces - 1360A(简单思维和图形判断)

题意&#xff1a; 给你两个大小一样的&#xff0c;边长为a&#xff0c;b的矩形将其放入一个正方形里&#xff0c;问怎样放可以使正方形面积最小&#xff08;要求正方形边和矩形边平行&#xff09; 题目&#xff1a; Find the minimum area of a square land on which you ca…

基于 abp vNext 和 .NET Core 开发博客项目 - 接入GitHub,用JWT保护你的API

上一篇文章再次把Swagger的使用进行了讲解&#xff0c;完成了对Swagger的分组、描述和开启小绿锁以进行身份的认证授权&#xff0c;那么本篇就来说说身份认证授权。开始之前先搞清楚几个概念&#xff0c;请注意认证与授权是不同的意思&#xff0c;简单理解&#xff1a;认证&…

第五站 使用winHex利器加深理解数据页

这篇我来介绍一个winhex利器&#xff0c;这个工具网上有介绍&#xff0c;用途大着呢&#xff0c;可以用来玩数据修复&#xff0c;恢复删除文件等等。。。。它能够将一个file解析成hex形式&#xff0c;这样你就可以对hex进行修改&#xff0c;然后你就可以看到修复后的结果&#…

法国 计算机金融 大学,捷报|GPA3.0,计算机转申金融,斩获法国顶级商学院录取!...

原标题&#xff1a;捷报|GPA3.0&#xff0c;计算机转申金融&#xff0c;斩获法国顶级商学院录取&#xff01;NutsCongratulationsNuts北大学员,GPA3.0计算机转申金融&#xff0c;斩获✨ 全法排名第二ESSEC金融录取✨OfferESSEC法国著名学府埃塞克高等商学院(cole suprieure des…

是小厂全栈好,还是大厂专业工程师好?

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区特邀嘉宾&#xff01;一在博客园中使用小公司大公司进行搜索&#xff0c;列入的搜索记录长达50页。虽然完全命中关键词的文章也许并不多&#xff0c;但这或许也能体现出这个话题的热门程度。今天…

计算机英特尔显卡在哪找,Win10英特尔显卡设置图标不见了该怎么办 - 系统之家...

电脑中使用英特尔显卡的时候&#xff0c;就会在系统任务栏托盘中显示图标&#xff0c;方便用户进行操作&#xff0c;但是有win10用户反映说自己的任务栏托盘中没有显示英特尔核芯显卡的托盘图标&#xff0c;这是什么情况&#xff1f;下面小编就来给大家分析分析。一、查看是否安…

.NET Core + Kubernetes:Service

通过 .NET Core Kubernetes&#xff1a;Deployment 文章的介绍&#xff0c;我们可以通过 Deployment 控制器快速创建一组 Pod 来提供服务&#xff0c;每个 Pod 都会被分配一个集群内可见的虚拟 IP 地址&#xff0c;然后通过一个独立的 Endpoint&#xff08;Pod IP ContainerP…

bim建筑绘图计算机要求,BIM考试报名条件:想要成为一级BIM建模师需要达到哪些要求?...

【摘要】如今&#xff0c;BIM成为建筑领域无处不在的一个热词&#xff0c;学习BIM技术也是当前的热潮。那么你知道一级BIM建模师考试的考评要点吗?获得BIM技能等级认证&#xff0c;成为行业急需的BIM技术人才需要达到哪些要求呢?一级BIM建模师一、文化要求报考一级BIM建模师基…

EventBus/EventQueue 再思考

EventBus/EventQueue 再思考Intro之前写过两篇文章&#xff0c;造轮子系列的 EventBus/ EventQueue&#xff0c;回想起来觉得当前的想法有点问题&#xff0c;当时对 EvenStore 可能有点误解&#xff0c;有兴趣可以参考 动手造轮子&#xff1a;实现一个简单的 EventBus动手造轮子…

网络原理题+复习资料

1.试说明运输层在协议栈中的地位和作用&#xff0c;运输层的通信和网络层的通信有什么重要区别&#xff1f;为什么运输层是必不可少的&#xff1f; 答&#xff1a;运输层处于面向通信部分的最高层&#xff0c;同时也是用户功能中的最低层&#xff0c;向它上面的应用层提供服务…

德清租房软件测试,门头沟实习生出租房

10 图2室 65㎡苏州街海淀南路小区距4号线大兴线海淀黄庄地铁站步行438m来自经纪人: 陈伟建1天前8300元8 图1室 35㎡北太平庄花园路8号院距10号线牡丹园地铁站步行1122m来自经纪人: 陈泽科1天前4800元10 图1室 45㎡西北旺芳怡园距16号线西北旺地铁站步行1128m来自经…

[推荐]大量 Blazor 学习资源(一)

预警前言 / Introduction Blazor 是什么&#xff1f;Blazor 允许您使用 C# 而不是 JavaScript 构建交互式 Web UI。Blazor 应用由使用 C#、HTML 和 CSS 实现的可重用 Web UI 组件组成。客户端和服务器代码都用 C# 编写&#xff0c;允许您共享代码和库。???? 本文主要来给大…

网络原理往期考试题+部分详解+最终版

一&#xff0e;填空题&#xff1a; &#xff08;号代表出现次数&#xff0c;无则说明一次&#xff09; 1&#xff0e; 在采用电信号表达数据的系统中&#xff0c;数据有数字数据和__模拟数据__两种。 2. 国际标准化组织ISO提出的不基于特定机型、操作系统或公司的网络体系结…