再见了Antirez(Redis作者)我永远的神

编程如画

共 3648字,需浏览 8分钟

 ·

2020-07-30 09:14

其实antirez(Redis作者)退出Redis维护的消息一发布我就在很多咨询网站上面看到了,当时也没太多感慨。

今天比较有空想去看看霉霉Twitter的,然后看到了关注列表的antirez,我就又一次回顾了他的退役声明。

58f410b51d1a8e6f9d6bf78160c26d2e.webp

我想这个Redis之父肯定没想到,自己和小伙伴启动的项目,在10年后的今天,会对这个互联网时代产生这么大的影响吧,说Redis加速了互联网公司的发展也不为过。

其实很多开源项目都是作者一个无意间的初衷启动的,然后不经意间做到了各个领域的世界第一,比如Linux,Nginx等等,都是小小的体积蕴含着大大的能量。

我之前所在的团队是做电商活动的,可以说Redis就是我接触最多的中间件,所以我文章最开始也是以Redis作为系列的开篇,对它的感情也可以说比正常程序员都要独特,他的各种使用场景,高级用法我几乎接触了一个遍,在很长一段时间也成为我面试的杀手锏,我研读过Redis很多功能的源码,不得不说这个团队真的把性能的优化做到了极致,用最短的代码,做到了最大的性能优化。

如果不是技术的同学可能不是很明白,这么说吧,大家进任何网页第一眼能看到的东西,大部分都是跟缓存息息相关的,或者也是利用了缓存这样的概念,一旦缓存挂了,那所有的网站可能会天天都会发生微博宕机那样的事故,所有人都无法正常访问网站,大量的流量会瞬间击垮服务器。

在Redis中,数据结构这个词的意义不仅表示在某种数据结构上的操作,更包括了结构本身及这些操作的时间空间复杂度。

Redis 定位是一个内存数据库,正是由于内存的快速访问特性,才使得Redis能够有如此高的性能,才使得Redis能够轻松处理大量复杂的数据结构,Redis会尝试其它的存储方面的选择,但是永远不会改变它是一个内存数据库的角色。

Redis 有着诗一般优美的代码,经常有一些不太了解Redis 原则的人会建议Redis采用一些其它人的代码,以实现一些Redis 未实现的功能,但这对研发团队来说来说就像是非要给《红楼梦》接上后四十回一样。

Redis的深度用户都知道,缓存只是他最简单和基础的功能罢了,哨兵,集群,分布式锁,延时队列,位图,HyperLogLog,布隆过滤器,限流,GeoHash(附近的人)等等,眼花缭乱的类型和使用姿势多得不行。

这里面大部分的东西在antirez维护Redis的早期就诞生了,是不是对他的敬佩又多了一分。

antirez这样的大神能坚持这么多年,我想枯燥是必然的,但是如果你跟我一样关注他的Twitter你会发现,这个人是真的热爱这项事业。

1d8ec3a9b9a81e00a5eb814ff12df621.webp

他几乎没有一条生活相关的推特,最多偶尔晒一下论坛和技术大牛的合照,或者偶尔。。。开开车,我发现我们程序员都喜欢开车哈哈哈,不知道为啥敲到这里的时候,我的嘴角微微的上扬了。

你说他枯燥吧他枯燥,不过他也很有趣,我问大家一个问题:大家知道Redis端口为啥是6379么?

Antirez出生在非英语系国家,英语能力长期以来是一个短板,他曾经专门为自己蹩脚的英语能力写过一篇博文《英语伤痛 15 年》,用自己的成长经历来鼓励那些非英语系的技术开发者们努力攻克英语难关。

e0f27896a928a038c5c353975c48bec0.webp

我们都知道 Redis 的默认端口是 6379,这个端口号也不是随机选的,而是由手机键盘字母「MERZ」的位置决定的。

「MERZ」在 Antirez 的朋友圈语言中是「愚蠢」的代名词,它源于意大利广告女郎「Alessia Merz」在电视节目上说了一堆愚蠢的话。

f317ebec2d46273edb8884f9ed227009.webp

他的博客地址:http://oldblog.antirez.com/post/redis-as-LRU-cache.html  包括上面的英语伤痛15年也是有的,他是意大利人嘛,所以英文的博客不是那么多,不过他最近更新的大部分都是英文的了。

是不是发现这个人还是有意思,因为不爽一个广告女郎,就把人家做成了端口名。

73476f8094de0dfc8d29f73e3f28dccd.webp

最后跟随谷歌以及程序羊的翻译跟我再一次回顾,Antirez的退役文吧,这个四十岁的老兵,这么多年孜孜不倦地写代码,为 Redis 的开源事业持续贡献自己的力量:

antirez在退役文中说到:他最激动人心的时刻就是十年前项目刚刚开始的时刻,Redis 的联合创始人和我启动了两个重要的意大利互联网 web 2.0 项目,为了持续扩容服务,我们创造了很多新概念,这些概念其实已经在技术领域流行很多年了,但是在当时我们并不了解也不曾验证过是否可行,不过没关系,我们喜欢解决问题,并从中发现很多乐趣,Redis 刚刚诞生的时候真的是非常有意思的(让人难忘的)。

但是如今 Redis 不一样了,它难以置信的在非常非常多的项目中扮演者至关重要的角色。经过了这么多年的打磨,我的工作性质也发生了变化。我不只是要让它变更加有用(更多新鲜的功能),还要让它尽可能的稳定(少出 bug)。

尤其最近这几年,我的工作内容变化太大了,我主要的精力都花在了 Redis 代码的维护上,主要就是看看其它的开发者告诉我关于 Redis 的代码该如何改进才能让它变的更快更好。其实我根本就不想做一个软件维护者(修 bug、优化代码的工作实在太无聊了)。

我写代码是为了更好的表达自我,这是艺术创作(乐趣),而不单单是为了把事情搞定(挣钱)。

我的目标更多的是为了追求美感,而最终能不能起到作用仅仅是附带的结果而已。我宁可大家认为我是一个糟糕的艺术家,也不希望只被看成一个优秀的程序员。

但是现在我被要求这要求那,就因为这个项目变得如此重要。我不能随意表达自己(艺术创作,大刀阔斧的改代码),而只能在现有的代码基础上维护(小打小闹)。

我并不是说这样不对,这只是现阶段的 Redis 必须要接受的方式。但是我个人有点受不了,最近几年我感到很憋屈(Linus 也会是这种感觉么?)。

所以呢,社区里面的同志们啊,我告诉你们我要退居幕后了。我未来只是作为 Redis 的顾问来给 Redis 实验室提供一些新奇的想法(维护 Redis 代码我就不干了)。

如此呢,我就可以把自己释放出来做点其它的事。至于做什么还没有想好,会不会继续写代码也不确定。我比较怀疑自己是否能够完全放弃写代码,只是因为写代码实在是太好玩了(此处有个调皮的表情)。

从今天开始,我要把 Redis 留给了 Redis 社区,让我的老战友 Yossi Gottlieb 和 Oran Agra 来继续维护它。

这两个人在过去这几年对我帮助非常大,在关于 Redis 愿景(未来)的理解上,他们并不会被我个人的主观想法所左右。因为我不太想参与 Redis 开发模型的治理工作(这是 Redis 维护工作中最重要的元工作,而我不是想继续搞维护了),所以后面跟其它 Redis 开发者交流「可持续的开发模型」一事就完全托付给他们两了,你们可以从这边文章 https://redislabs.com/blog/new-governance-for-redis/ 中直接了解这个事。

我相信我不只是把 Redis 留给了社区里的一堆专家级程序员,还应该包括社区中所有对 Redis 精神遗产感兴趣的朋友们。

十一年来,我希望让大家看到开发软件还有这样的一种特别的方式(我的方式),这种方式只有个别人可以理解。我希望在 Redis 未来的变化中,这种方式还是可以继续被适度采用。(是不是 antirez 独裁(不可持续)的方式和 他老战友的「可持续开发模型」冲突了,闹的很不愉快,不是很确定)。

Redis 是我职业生涯中压力最大的项目,可能也是最重要的项目。

最近这些年编程世界的变化我并不是特别喜欢(不知道说的是哪方面的变化),虽然这段旅程非常艰辛,能够有机会和很多特别的人一起工作交流也让我感觉非常知足。

谢谢你们的理解和帮助,这让我成长了很多,我需要特别感谢无私赞助我的公司和个人让我可以持续这么多年持续每天为开源世界共享代码,让我可以自由地做自己认为是正确的事。还有 Redis Labs、VMWare 和 Pivotal,非常感谢你们的帮助和宽容(是不是 antirez 摸鱼了)。

前面说到,除了继续 Redis 的顾问工作之外,我也不知道未来的路该怎么走。也许走一步看一步也挺好,不用干太多事。我还想发展一下个人的一些兴趣爱好,比如写写博客就挺好,以前我一直想写但是一直没有太多时间。

最近我还发了一些意大利语的技术视频,这很好玩,还收到了读者大量的反馈,我未来应该还会发更多的视频。你们大概也知道我的 Twitter 账号 @antirez 一直很活跃 ,如果你们还对我这样一个又老又怪的程序员感兴趣,那就去 Twitter 上围观我吧。

71c7cd5a9ba623460149774f561a07a2.webp

最后用antirez的一句话收尾吧:

我们以优化代码为乐,我们相信编码是一件辛苦的工作,唯一对得起这辛苦的就是去享受它,如果我们在编码中失去了乐趣,那最好的解决办法就是停下来,我们决不会选择让Redis不好玩的开发模式。

respect

来个直击灵魂的三连吧!


浏览 68
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报