<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          美麗的西西里島的一位意大利帥哥程序員的創(chuàng)業(yè)成功之路.

          共 7232字,需瀏覽 15分鐘

           ·

          2023-08-18 09:27

          你好呀,我是歪歪。

          周五了,就不卷技術(shù)了。

          5fadc24d47277d927ba5901f4d2ed3e4.webp

          帶大家看看一位在美麗的西西里島創(chuàng)業(yè)的意大利帥哥的成功之路。

          這個意大利帥哥就是他:

          e9f38f3f20f0ebdc4421df75cebc8188.webp

          他叫做 antirez,也是 Redis 的爸爸。

          在數(shù)據(jù)庫的世界,Redis 獨(dú)具一格。

          其他多種數(shù)據(jù)庫的中心思想不是表格就是文件,但在 Redis 里,你直接與鏈表(Linked List)、哈希(Hash)、集合(Set)等“低級”的數(shù)據(jù)結(jié)構(gòu)打交道。

          這正是 Redis 作者 Salvatore Sanfilippo(網(wǎng)名antirez)的獨(dú)創(chuàng)設(shè)計。

          在創(chuàng)造 Redis 時,antirez 是數(shù)據(jù)庫的門外漢,但也許就是他沒經(jīng)驗(yàn),才能為數(shù)據(jù)庫領(lǐng)域帶來新想法。

          多年后的今天,Redis 已成為主流,幾乎所有網(wǎng)絡(luò)服務(wù)背后都能見到它的蹤影。

          在 Stack Overflow 的調(diào)查報告上,Redis 更是蟬聯(lián)五年最受歡迎的數(shù)據(jù)庫。

          antirez 早年生活

          antirez 在意大利西西里長大,小時候,他的父親在一家石化公司工作,擔(dān)任電工,借此接觸工業(yè)自動化的問題。

          80 年代,他父親開始使用可編程邏輯控制器(PLC),并對這些控制器產(chǎn)生興趣,于是他買了一塊Z80 處理器的板子,開始在上面寫程序。

          b22f3e777c557af7f9c94a23e5545462.webp

          antirez 六歲時,家里買了第一臺個人電腦,TI-99/4A。那是一臺商業(yè)上不成功,但很有趣的電腦。

          d616d728541831e98d0ee36f5465d806.webp

          他父親會那上面寫了一些 BASIC 程序,antirez 有樣學(xué)樣,小學(xué)一年級時就會打鍵盤、復(fù)制BASIC程序等。

          到了 14 歲,青少年時期的興趣,像是摩托車、女孩子,接踵而至,寫程序這個興趣就被拋諸腦后。

          直到 18-19 歲時,antirez 才重拾對電腦的興趣,用電腦玩3D 建模、游戲,也寫一些簡單的程序。

          在巴勒摩大學(xué)建筑學(xué)院就讀大學(xué)時,他會用 BASIC 來畫圖。BASIC 是他兒時學(xué)過的編程語言,也是他當(dāng)時唯一會的語言。

          信息安全公司SECLAB

          有一天,antirez 想買一張顯示卡,卻不小心買成了調(diào)制解調(diào)器(Modem,俗稱貓),商家不肯退款,antirez 就順其自然:「貓就貓吧!」

          當(dāng)時是 90 年代,互聯(lián)網(wǎng)逐漸平民化。他連上網(wǎng)絡(luò),安裝了 Linux,開始對信息安全產(chǎn)生興趣。他買了一本 C 語言的書,開始學(xué)習(xí) C 語言。

          不久之后,他發(fā)現(xiàn) ping 程序有一個漏洞。

          這個漏洞是這樣的:在 Unix 里通常有一個限制,如果你不是 root,則無法快速在短時間內(nèi)發(fā)送大量封包。但 antirez 發(fā)現(xiàn)透過 Unix 信號,可以繞過這個限制。

          1998 年 4 月,他在 Bugtraq 郵件列表上發(fā)表了這個發(fā)現(xiàn),Bugtraq 可不一般,全球的信息專家都會在上面發(fā)布安全問題。

          第二天,antirez 接到一通從米蘭打來的長途電話,一家名叫 SECLAB 的安全公司問他要不要來工作。

          antirez 受寵若驚:「但我只是一個建筑系的大學(xué)生,我什么都不懂。」

          但 SECLAB 的老板還是鼓勵他來米蘭一趟,和他們聊聊。

          antirez 去了米蘭與他們見面,公司的老板告訴 antirez:「你回去繼續(xù)生活,但是讀這十本書,讀完再回來找我。」

          這十本書都是關(guān)于網(wǎng)絡(luò)的,如 TCP/IP 協(xié)議、防火墻、應(yīng)用程序安全、密碼學(xué)等。

          1998 年夏天,antirez 就每天西西里島的海邊讀這些書。

          九月,antirez 回去找 SECLAB,他們想聘請 antirez。

          休學(xué)后,antirez 搬到米蘭工作。第一次開會時,antirez 完全聽不懂同事在說什么,冒牌頂替癥油然而生。

          這也不能怪 antirez,當(dāng)時意大利一些厲害的黑客都在 SECLAB 工作,不過在這充滿強(qiáng)者的環(huán)境里,經(jīng)過兩個月的洗禮,antirez 也開始做出貢獻(xiàn)。

          首先,antirez 發(fā)明了一種名為 Idle Scan 的攻擊手法。它至今仍是 Nmap 的著名的攻擊手法之一,仍被人們研究著。

          SECLAB 的老板認(rèn)為 antirez 在開源社群的工作成果,比去應(yīng)付客戶有價值,就叫他不需煩惱客戶,只要專心寫開源軟件,在安全領(lǐng)域研究攻擊手法。

          此外,antirez 還寫了一個名叫 hping 的工具。它是一個可以讓你傳送客制 TCP/IP 封包的命令列工具,它的作用類似 ping,但它不一定要像 ping 走 ICMP 協(xié)定,所以 hping 可以做到更多事。例如:測試防火墻規(guī)則、測試網(wǎng)路效能、繞過防火墻傳輸檔案。

          米蘭這個大城市對一個 21 歲的年輕人實(shí)在太多采多姿,自制力不好很容易迷惘其中,他開始晚睡,工作遲到。

          在 SECLAB 待了六個月之后,antirez 離開了。

          雖然時間短,期間 antirez 寫了很多 C 語言的程序,參與了很多項(xiàng)目,這六個月是 antirez 職涯上很重要的轉(zhuǎn)折點(diǎn)。

          自創(chuàng)公司 Merzia

          2000 年,antirez 加入了 Linuxcare 意大利分部,公司業(yè)務(wù)是開源軟件,他又在家遠(yuǎn)程工作,一切都很好——直到互聯(lián)網(wǎng)泡沫破滅。

          那一天公司發(fā)了一封郵件告訴員工:「我們要關(guān)閉 18  個國家的業(yè)務(wù),一個月后你們?nèi)考磳⑹I(yè),晚安。」

          2001 年,當(dāng)時 23 歲的 antirez 有一個小孩,他需要養(yǎng)家活口。他開始寫一些 PHP,包辦前后端,幫客戶做小項(xiàng)目。

          2005 年是 Web 2.0 萌芽的年代,他跟朋友 Fabio Pitrola 開了一間叫 Merzia 的公司,想在意大利市場做一些 Web 2.0 的應(yīng)用。

          意大利電信(Telecom Italia)看到了他們做的東西,寫了一封郵件,試圖建立合作關(guān)系。意大利電信后來買下他們做兩個網(wǎng)站:一個是社交新聞網(wǎng)站 OKNOtizie,另一個是類似書簽網(wǎng)站 Delicious 的 Segnalo。

          Redis 的誕生

          又過了幾年,antirez 和他朋友決定專注一個新領(lǐng)域:網(wǎng)站分析。

          他們想為寫博客的博主們打造一個工具,讓他們可以看到訪客的即時行為。例如:一個訪客從 Google 點(diǎn)進(jìn)了這篇文章,回到首頁,然后跳到某一頁。

          博主可借此改進(jìn)網(wǎng)站的導(dǎo)航設(shè)計,這個工具名為 LLOOGG,當(dāng)時的網(wǎng)站首頁上有幾句介紹,說明它與 Google Analytics 的不同之處。

          LLOOGG 特別之處就在于它讓網(wǎng)站管理員監(jiān)看某個訪客當(dāng)下在網(wǎng)站上的活動,Google Analytics 一直到了2011 才有這個功能,而 LLOOGG 創(chuàng)立在 2007 年,可見之創(chuàng)新。

          剛開始 antirez 嘗試使用 MySQL,但馬上就發(fā)現(xiàn)性能問題。

          MySQL 每讀寫一筆數(shù)據(jù),都要動用到硬盤,數(shù)據(jù)量一多,運(yùn)算全卡在硬盤的讀寫,網(wǎng)站就動彈不得。

          從現(xiàn)今眼光來看,有經(jīng)驗(yàn)的后端工程師都會知道不應(yīng)該選 MySQL 來實(shí)現(xiàn)即時應(yīng)用,但在 2007 年這一切并不是這么顯而易見。

          antirez 認(rèn)為使用內(nèi)存可以解決這個問題,于是他先用Tcl編程語言寫了一個內(nèi)存數(shù)據(jù)庫的原型(prototype),名叫LMDB(LLOOGG Memory Database),這就是Redis 的前身。

          這個原型源碼只有 300 多行,但已足夠讓你一窺 Redis 的大致樣貌。

          首先,這個原型已支持像是 SET、GET、LPUSH、RPUSH 等基本指令,你可以在上面使用字符串(string)與列表(list)兩種數(shù)據(jù)類型。

          此外,服務(wù)器與客戶端的通訊協(xié)定與 Redis v1 一致,設(shè)計上要讓人類可讀(human readable)且可快速解析(fast to parse)。

          Redis 預(yù)設(shè)的端口 6379 也早已出現(xiàn)在 Tcl 源碼當(dāng)中,6379 這個數(shù)字很有意思,來源是 Alessia Merz,一位意大利的模特兒。

          27d9c9208e757ee72470deae4c7ef389.webp

          Alessia Merz 在電視上常說一些不經(jīng)大腦的話,逗樂 antirez 和他的朋友們,在朋友間他們會說「那個很 merz!」來形容某個事物很蠢、沒意義。

          在九宮格鍵盤上,MERZ 對應(yīng)的就是 6379,于是就成了端口號。

          c340d1883789a1c815d586f97614d78f.webp

          merz 這個詞經(jīng)過十幾年的轉(zhuǎn)變, 漸漸被他們用來形容看起來很蠢,但卻有具有研究價值的東西,他們的公司名字 Merzia 大概也是這么來的。

          Tcl 源碼的前幾行,antirez 引用了一個包卻沒使用,只留了一行注解 # For [fork]。當(dāng)時他想要利用 fork() 系統(tǒng)調(diào)用來實(shí)做持久化儲存(persistence)——把數(shù)據(jù)寫回硬盤的機(jī)制。

          這至今仍是 Redis RDB 的運(yùn)作方式:利用 fork() 創(chuàng)造出一個子進(jìn)程,讓子進(jìn)程去將數(shù)據(jù)寫到硬盤,父進(jìn)程則繼續(xù)做原來該做的事。

          Tcl 源碼沒有真的用到 fork(),antirez 只留了一行注解在那里,因?yàn)楫?dāng)時他理解到 Tcl 已到了極限,是時候以 C 語言改寫了。

          2009 年 2 月,antirez 的朋友 David Welton 幫他把 Redis 在 Hacker News 上公諸于世。

          6e1a613007f708875119ee2e3536c5e1.webp

          結(jié)果除了發(fā)文者之外,只有四個人回應(yīng)他:三個人說已經(jīng)其他類似的項(xiàng)目了,只有一個人給予正面回復(fù),并提供幫助。

          1f66a63985e7b26be4caad138ea3e7b2.webp

          這個人就是 Ezra Zygmuntowicz(不幸在2014 年去世,RIP),他當(dāng)時在 Ruby on Rails 社群已相當(dāng)著名,是 EngineYard 的共同創(chuàng)辦人。

          Ezra 為 Redis 寫了初版的 Ruby 客戶端 redis-rb,至今還是 Ruby 客戶端的首選,也成為 Redis 在 Ruby 社群流行起來的重要推手。

          五年來,Redis 幫 LLOOGG 處理了二十億次瀏覽量。在 2014 年關(guān)站時,Redis 每秒處理 350-400 個指令。而這整個系統(tǒng)僅是跑在一臺每月 150 美金的虛擬機(jī)器上。

          創(chuàng)業(yè)公司都愛 Redis

          盡管 Hacker News 上沒有獲得熱烈回響,antirez 每天仍利用工作之余開發(fā) Redis,大概持續(xù)了一年,慢慢開始吸引用戶。

          當(dāng)時他手上還有兩個開源項(xiàng)目:hping 和 Jim Interpreter,但 Redis 是第一個讓他覺得可以長期投資的項(xiàng)目。

          他對信息安全失去興趣后,就停止開發(fā) hping;他對 Tcl 的走向失望,投入 Ruby 的懷抱后,就停止開發(fā) Jim Interpreter。

          但他很肯定他離不開數(shù)據(jù)庫,所以 antirez 就假設(shè) Redis 會成功,繼續(xù)開發(fā),因?yàn)榫退悴怀晒Γ辽偎约涸谕髱啄甓紩^續(xù)使用這個數(shù)據(jù)庫。

          2009 年,與 Redis 發(fā)布同年,一個叫 GitHub 新創(chuàng)公司的 CEO,Chris Wanstrath 利用 Redis 寫了一個隊列系統(tǒng) Resque,用來跑 GitHub 的后臺任務(wù)。

          在 Rails 的世界,Resque 是當(dāng)時最熱門的工作隊列系統(tǒng)。2012 年出現(xiàn)的一個后起之秀 Sidekiq,也是建立在 Redis 的基礎(chǔ)上,是現(xiàn)在 Rails 工程師的首選。

          另一家新創(chuàng)公司 Instagram,其中一個創(chuàng)辦人 Mike Krieger 在 2010 年開始與 antirez 通信,討論該怎么利用 Redis 打造 Instagram。當(dāng)時 Instagram 和 Redis 都是剛起步,Mike 和 antirez 也互不相識。

          Instagram 在最初幾年是完全建造在 Redis 之上的,所以如果沒有 Redis,很可能就不會有 Instagram,或至少會晚點(diǎn)才問市。

          2010 年,Twitter 也加入 Redis 的行列。Twitter 邀請過 antirez 到他們總部幾次,討論「時間軸」的新設(shè)計。有趣的是,antirez 在 Redis 剛發(fā)表完沒多久(2009 年3 月),就寫了一個簡單版的 Twitter 叫Retwis,以展示如何使用 Redis。

          金主來了!

          至此,Redis 項(xiàng)目對 antirez 來說還只是一個愛好,他無償?shù)母倪M(jìn) Redis 并發(fā)布新版,直到有一天,VMware 打電話過來。

          「我們想付錢贊助 Redis,VMware  在意大利有分部,我們想聘請你,你想成為我們的員工嗎?」

          antirez 問:「那我需要為你們做什么?」

          「不不不,你只要繼續(xù)做你現(xiàn)在做的事,我們就會付你錢。你只需要在網(wǎng)站上寫 Redis 是由 VMware 贊助的即可。」

          7bbab83d006ba3d06ad710e0a21348c8.webpredis.io 2010-11-27 的截圖

          就這樣,Redis 有了一個金主,antirez 和 VMware 合作開發(fā)Redis 好幾年。VMware 后來與 Pivotal 分拆,antirez 又轉(zhuǎn)到了 Pivotal。

          隨著用戶愈來愈多,市場上出現(xiàn)了第一批提供 Redis 顧問服務(wù)的公司,其中有一間來自以色列特拉維夫的公司叫 Redis Labs。它本來的名字叫 Garantia Data,一開始是數(shù)據(jù)庫供應(yīng)商,后來公司改名為 Redis Labs,轉(zhuǎn)型專注做 Redis 相關(guān)的業(yè)務(wù)。

          Pivotal 和 Redis Labs 有一個共同投資人,某一天他告訴 antirez:「你在VMware 干嘛?去 Redis Labs 吧,那里才是你產(chǎn)品的支持中心。」

          于是 antirez 轉(zhuǎn)到了 Redis Labs,并在那邊工作至今。2021 年8 月,Redis Labs 更正式改名為 Redis,原本是項(xiàng)目網(wǎng)站的 redis.io 變成了公司網(wǎng)站。

          退出Redis開發(fā)

          Redis 誕生后十年,2020 年 1 月,antirez 在 Redis Day 會議的講臺上,用他招牌的意大利腔英文介紹 Redis 6.0 的新功能。在 Twitter 上還可以找到一些與會人員和 antirez 的合照。

          10a5aae7f60ec838c6418475451724e5.webp

          回顧 Redis 這十年來的成長:

          de8475e108927e18a41a1214b4dc595c.webp

          同年 6 月,antirez 在博客寫了一篇文章告訴大家,他決定退出 Redis 項(xiàng)目的開發(fā)及維護(hù)工作。

          他仍然會在 Redis Labs 擔(dān)任顧問的角色,提供意見,但不直接參與開發(fā)。十年多來奉獻(xiàn)在同一個項(xiàng)目上,讓 antirez 倦怠了。

          對 antirez 來說,寫程序是一種表達(dá)自我的方式,是一種藝術(shù)。每一個字符、斷行都要精雕細(xì)琢,仿佛是另外一種藝術(shù)形式——寫作。

          軟件開發(fā)就像是在寫一本書,它必須美觀、優(yōu)雅、容易理解。如果這個軟件剛好是對其他人也實(shí)用,那也只是副作用罷了。

          當(dāng)然,antirez 也理解這個想法不切實(shí)際。當(dāng)你的軟件被大規(guī)模采用,你就必須做出許多妥協(xié),讓你的軟件變得不那么完美,但卻對大部分人實(shí)用。維護(hù) Redis 變得愈來愈具挑戰(zhàn)性,讓他在藝術(shù)和實(shí)用性之間陷入掙扎。

          這使得 antirez 感到疲憊與壓力,開始渴望回歸那個藝術(shù)家的身份,去創(chuàng)作更純粹的程序藝術(shù)。

          離開 Redis 項(xiàng)目后,antirez 寫了一本關(guān)于人工智能的科幻小說《Wohpe》,于2022 年7 月出版。

          同年 4 月,Redis 團(tuán)隊發(fā)布了新版本 7.0,這是 antirez 退出項(xiàng)目后的第一個重大版本。

          后記:

          本文來自《Redis 與作者antirez 的故事》,原文地址:

          https://blog.brachiosoft.com/posts/redis/

          原文為繁體中文,公眾號“碼農(nóng)翻身”的號主對其中一些計算機(jī)術(shù)語做了修改,以適應(yīng)簡體中文的習(xí)慣,并且添加了一些插圖,一些的文字也稍有調(diào)整。

          這篇文章在 Hacker News 獲得了不少的回應(yīng),包括 antirez 本人也回應(yīng)了:

          https://news.ycombinator.com/item?id=35893871

          3b6d285c8ed0c536fdad3797116882dd.webp

          他甚至還指出了原文里面的一些錯誤和遺漏,

          他真的,我哭死。

          由于公眾號文章不能加外鏈,原文中很多鏈接和參考資料沒法展示,建議大家去看原文。

          ··············  END  ··············

          35511b3ecab8beab3ec926e9814440fc.webp

          推薦?? 可拷,很刑!一種基于ChatGPT的高效吃瓜方式的探索和研究。

          推薦?? 改良版的雪花算法,是你的了。

          推薦?? 面試官:一個 SpringBoot 項(xiàng)目能處理多少請求?(小心有坑)

          推薦?? 兄弟,不要試圖在業(yè)務(wù)代碼中炫技。

          推薦?? 一個普通程序員磕磕絆絆,又閃閃發(fā)光的十年。

          你好呀,我是歪歪。我沒進(jìn)過一線大廠,沒創(chuàng)過業(yè),也沒寫過書,更不是技術(shù)專家,所以也沒有什么亮眼的title

          當(dāng)年高考,隨緣調(diào)劑到了某二本院校計算機(jī)專業(yè)。 純屬誤打誤撞,進(jìn)入程序員的行列,之后開始了運(yùn)氣爆棚的程序員之路。

          說起程序員之路還是有點(diǎn)意思,可以 點(diǎn)擊藍(lán)字,查看我的程序員之路

          瀏覽 63
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人生活片一区三区 | 国产婬荡交换XXXⅩ黑人 | 搞搞中文字幕 | 日韩欧美小视频 | 欧美亚洲天堂网 |