第312期 | Redis之父:开源维护者的挣扎
池建强
讲述:池建强大小:8.32M时长:09:05
你好,这里是卖桃者说。之前一直说要上一个 Redis 专栏,现在看进度,这个愿望 8 月就能实现了,今天我们就来聊聊 Redis,算是预热。
前阵子,Redis 的作者 Antirez(Salvatore Sanfilippo)发布博客,宣布自己将辞去 Redis 项目维护者职务,将 Redis 交给 Redis 社区。这一消息受到了业界的强烈关注。
Redis 之父说,他现在的大部分精力都花在检查其他开发者提交的 Redis 代码、改进代码质量,以及提升软件正确性、速度与安全性方面,但他并不喜欢做这类维护工作,而是希望做一些有创造性的工作,通过写代码实现自我表达。他是这么说的:
我写代码是为了表达自我,并且我认为它们是一种艺术品,而不仅仅是能够完成任务的有用的东西。
于我而言,代码的功能只是一种副作用,创造出优美的东西才是我的首要目标。
从本质上来说,我更愿意人们把我看作是一名糟糕的艺术家,而不仅仅是一名优秀的程序员。
辞掉维护者职务,并不代表 Antirez 彻底和 Redis 切断联系,在之后的日子里,他将在 Redis Labs 担任“谋士”,为 Redis 新的可能性提供意见,而空出来的维护者角色将由 Redis 项目新任负责人 Yossi Gottlieb 与 Oran Agra 接管。
简单来说,Redis 是一款免费、开源、遵循 BSD 协议的高性能结构化存储数据库。同时,它也是 NoSQL(Not Only SQL),即非关系型数据库的一种,内置了丰富的数据结构,目前基本上已经成为一种工业标准,NoSQL 数据库的首选。
Redis 最大的特点就是它的查询效率非常高。根据官方提供的数据,Redis 每秒最多处理的请求可以达到 10 万次。Redis 之所以能这么快,和它的编写语言、内存模型,包括进程和线程的设计息息相关。
回顾这十几年的发展历程,在 Antirez 和无数开发者的维护下,Redis 越来越成熟。在 DB-Engines 最新发布的 7 月键值存储数据库排行榜中,Redis 排在第一,排在它后面的有亚马逊 DynamoDB 和微软 Azure Cosmos DB。而在 DB-Engines 数据库总榜中,Redis 也稳定排在第 8 位,这个成绩可以说相当优秀。
其实 Redis 原本只是 Antirez 的一个小小的个人项目,而且还是开源的,能坚持到现在已经挺牛的了。当时,Antirez 要解决一个实际问题,于是就决定自己写一个内存数据库。2009 年初,Antirez 正式启动了 Redis 项目,并在后来将其开源。开源之后,Redis 很快吸引了一批用户,也收到了越来越多的反馈,社区规模也在不断壮大。但与此同时,Redis 也逐渐变得复杂了起来。为了给 Redis 找到一个可行的商业模型,Antirez 先后选择了 VMWare、Pivotal 来赞助这个项目。现在,Redis 的开发由 Redis Labs 赞助。
Redis 对于 Antirez 的意义自然不必多说,每个作品都是创造者的“孩子”,一点点看它长大,看它成熟,看它不愁名气也不愁钱。按理说,这个时候 Antirez 更应稳坐一线,继续带领 Redis 走向巅峰,但现实往往会来个出其不意。很多听说 Antirez 辞职的网友纷纷给他留言,以至于他在 Twitter 上感慨说:“简直不敢相信我收到了如此多的消息,即使有些听起来像是我死掉了一样,这有点像参加自己的葬礼呢……”
其实从另一种角度来看,与其说这是 Antirez 的“葬礼”,不如称之为“重生”。因为在 Antirez 维护 Redis 的这些年里,无论是在精神上还是心理上,他都经受了巨大的考验。Antirez 曾在一年多前在自己的博客中写下《开源维护者的挣扎》一文,从中可以一窥开源维护者面临的困顿。
比如,Antirez 需要面对来自用户的压力。当 Redis 变得越来越流行,用的人越来越多时,用户提交的反馈也就越来越多,他收到的建议成倍增长。这个时候,他不仅要花大量时间处理反馈,还要在自己的想法和用户期望之间做权衡。但无论他怎么优化,永远满足不了所有人的需求,总会有一小撮儿人疯狂吐槽。其实这也是每个作者都会面临的问题,你永远无法让所有的人都满意。这种事情既然躲不掉,那么习惯就好了。微信之父张小龙就曾在一次公开课分享上说过,“每天有 5 亿人吐槽微信,有 1 亿人想教我做产品……习惯就好。”
来自用户的压力只是一方面,对于开源维护者来说,长期在同一个项目上工作还会面临诸多问题。Antirez 就觉得,自己主要还有两个问题:
第一,工作时间长且固定,自己没时间充电,很难进行创新,同时生产力也会降低。
在参与 Redis 项目之前,Antirez 的工作时间一直比较自由,他可以工作一个星期,再休息两天,也可以工作一个月,再休息两个月。在他看来,人总是需要充电的,放空自己才能获得新的能量与灵感。从个人经历来看,他觉得自己想工作的时候才工作,总体产出要比每天被迫固定工作还更高一些。但在公司上班之后,职业要求成了他的“紧箍咒”,为了靠开发 Redis 赚钱,他必须得按照正常的时间表工作,这打破了他多年来的工作习惯。
第二,从心理层面来讲,长期从事同一个项目确实非常累人。
Antirez 几乎每 6 个月就要进行一次项目变更,而且同样的工作已经持续了 10 年。为了解决问题,他尝试在 Redis 中引入多个子项目,让自己保持一点正常的激情。比如抽点时间做 Cluster,过一阵子再做 disk-storage(已经被废弃),然后是 HyerLogLogs 等,总之就是尽量把大型项目拆分成一个个孤立的有价值元素。但最终,工作总是回到“问题和 PR”上,让他的生活再次陷入没有停歇的重复中。
从这两点可以看得出来,Antirez 在维护 Redis 期间,身体和心理都承受了巨大的压力,这也为他如今的辞职埋下伏笔。
其实不仅是开源维护者,很多程序员都或多或少经历过类似情况,我也经常能收到这类的留言,有人感慨工作压力大,有人陷入重复劳动越来越厌倦等等。那咋办呢?
Live with it。能钻进去,也能跳出来,弦不要绷太紧。
正如李安导演所言:人生如练功,一份功一份松,松了一环之后,再往紧处练,层层而上。功力越深,无论环境如何变化,综合实力越强的人,越不容易被击败。
Antirez 在 Twitter 上说:人生苦短,不能一直都做同一件事情。也许辞职后的他,能找到更多新的可能。
祝福 Antirez,也祝福每个为世界带来创新的程序员。
卖桃者说,明天见。
(编辑:夏天)
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 李家鑫之前在码云上关注了一个开源框架,我有加入他的qq群,他面临的另一个问题是用户太少了。能看出来作者在开始开发的时候注入了很多心血,比如针对框架的应用方面和更高性能实现了自己的Ioc容器、web服务(一个端口,同时接入socket http和ws)、线程模型等,有些是Spring那种风格的,全是手撸,没有引入Spring任何类库。 作者在群里遇到用户的需求经常说:提交pr,描述下使用场景,我来给你实现…… 我看了下三年了不到两百用户……
池建强回复: 找不到场景,基本上不会长大。用户规模也是个直接因素
6 - Jackey印象中redis也是比较早的一批被迫弃用slave这个词的项目吧,感觉作者应该也很无奈,不仅要面临技术性需求,还要处理这种非技术需求
池建强回复: 政治正确很可怕
1 - Edward Lee再次印证了那句话:人不怕改变,最怕一成不变8
- Geek_4ec1b1开源亦如围城,外面的人拼命想进去,里面的人奋力地出来,其实说白了就是想看一看不一样的风景。尝试了体验过了就无怨无悔。 做事的激情也源于心甘情愿,就像楼上留言一个开源者为两三百人孜孜不倦的服务,这种坚持不易。2
- 欧雄虎(Badguy)老师非常期待您的redis专栏
- CryhardRedis6的ACL和client cache,看起来值得一试。不过仅仅两个月就发到第5个revision版本,让人有点不太放心。
- K战神熟悉的推广来了,看来确实redis要来了
收起评论