5 月 1 日,Redis 之父 Antirez 在個人部落格宣佈了一個好訊息:Redis 再度開源。
Antirez 曾經退出 Redis 維護將近 5 年,他在 2024 年 12 月迴歸。
迴歸 5 個月後推動搞出一個大新聞。
再度開源的訊息,迅速引發熱議,登上 HackerNews 熱門頭條。

1、為什麼說是“再度”開源呢?
Redis 最初以 BSD-3-Clause 許可釋出,這是一種寬鬆的開源許可,允許開發者在商業軟體中使用程式碼而不必支付費用或公開修改後的程式碼。BSD 許可在開源社群中非常受歡迎,因為它促進了廣泛的採用和創新。
轉折點是在 2024 年 3 月 20 日。Redis 的 CEO 在官網釋出公告,宣佈從 Redis 7.4 起,所有未來版本都採用雙重許可 RSALv2 和 SSPLv1。
RSALv2 (Redis Source Available License v2):一種寬鬆但有限制的許可,允許使用、複製、分發和修改軟體,但禁止將其商業化或作為託管服務提供給第三方。 SSPLv1 (Server Side Public License v1):一種基於 AGPL 的複製左許可,要求任何提供 Redis 服務的實體必須開源其整個服務堆疊,包括管理、使用者介面、API 等。
要命的是,開源促進會(OSI)並不認可上面這個雙重許可協議,所以 Redis 也就是失去「開源」名分。
為什麼 Redis 當時更改協議?
一句話:Redis 不想再被雲廠商“白嫖”。
Redis 不是個例,之前 MongDB 和 Elastic 等開源公司做過類似的協議修改。
2、Redis 之父:我要把自己最優秀的程式碼回饋使用者
五個月前,我重新加入了 Redis,隨後很快就和同事們討論了將許可證切換為 AGPL 的可能性,結果發現公司內部早就開始了相關討論,而且這討論由來已久。公司裡的很多人都覺得,相較於 Server Side Public License(SSPL),AGPL 是更好的選擇。儘管最終 Redis 採用了 SSPL 許可證,但內部的討論仍在繼續。
我試圖為公司內部支援 AGPL 許可證的一方增添更多助力。在我看來,從實際情況來講,SSPL 並未得到社群的認可。開源促進會(OSI)不接受它,軟體社群也不認為 SSPL 是一種開源許可證。沒過多久,我就發現這個提議在公司各個層級中得到了越來越多的支援。
老實說,我真心希望我為新的向量集合(Vector Sets)資料型別所編寫的程式碼能以開源許可證的形式釋出。編寫開源軟體對我來說已經根深蒂固:在我的職業生涯中,我很少編寫其他型別的程式碼。我年紀大了,現在也不想改變風格了。這或許有點幼稚,但我滿懷熱情地編寫向量集合,正是因為我知道 Redis(以及我的新工作成果)將會再度開源。
我明白,我們工作的核心是改進 Redis,持續打造一個優秀、實用、簡潔且能夠根據軟體堆疊需求而變化的系統。然而,迴歸開源許可證是讓這些努力與 Redis 專案保持一致、獲得使用者群體認可,併為超越任何單個公司的人類集體努力做出貢獻的基礎。所以,說實話,雖然我不能居功說許可證切換是我的功勞,但我希望自己為此盡了一點綿薄之力,因為今天我很開心。我很高興 Redis 依據 Affero 通用公共許可證第 3 版(AGPLv3)再度成為了開源軟體。
現在,是時候回到終端了,我要透過編寫我所能寫出的最優秀程式碼來表達對 Redis 使用者的尊重,並讓向量集合變得更有用、更實用:我還有一些改進的想法,也希望能從大家的反饋中激發出更多靈感(這已經開始了)。祝大家程式設計愉快!
Redis 8,即採用新許可證的首個 Redis 版本,也於 5 月 1 日正式釋出,帶來了許多新特性以及核心效能的提升:https://redis.io/blog/redis-8-ga/

3、Redis 公司和 Antirez 的關係
Redis 公司並沒有直接建立 Redis 。Antirez 並不是 Redis 公司的創始人。聽起來是不是有點懵?


小程程來捋一下:
-
2009 年,Antirez(Salvatore Sanfilippo)他在這一年啟動 Redis 開源專案,BSD-3-Clause 許可。
-
2011 年,Garantia Data 成立,專注於 Redis 和 Memcached 解決方案。
-
2013 年 11 月,Garantia Data 在融資公告中提到想改名 RedisDB,但被 Antirez 拒絕
-
2014 年 1 月底,Garantia Data 更名為 Redis Labs,強調其在 Redis 生態系統中的角色。
-
2015 年,Antirez 加入 Redis Labs,該公司成為 Redis 開源專案的官方贊助商。
-
2020 年 6 月 29 日,Antirez 宣佈退出 Redis 維護。他離開前將 Redis 的智慧財產權和商標權轉移給 Redis Labs 公司,這使公司有權調整 Redis 開源專案的許可。
-
2021 年 8 月,Redis Labs 再次更名為 Redis,完成開源專案和商業服務的統一品牌。
-
2024 年 12 月 10 日,Redis 公司宣佈 Antirez 迴歸。
4、Redis:三種協議的對比

2024 年 3 月,Redis 公司修改協議,很多開發者認為遭到“背刺”,引發了很多吐槽。
5、網友評論
在重新擁抱開源後,小程程摘幾個 HN 的熱門留言,有人表達對 Redis 繼續不信任,也有人支援 Redis.
網友 c0l0
我曾在 Redis 最初的許可證下為其做出了一個小小的(但在我看來仍然很不錯啦 :p)改進。當 Redis 意外宣佈將許可證變更為 Server Side Public License(SSPL)時,我個人就轉而使用 Redis 的其他分支版本了——作為一個為真正的自由及開源軟體(FOSS)程式碼庫做出過貢獻的人,我感覺受到了背叛。(順便說一句,要是他們當時直接切換到 Affero 通用公共許可證(AGPL),從道德層面來講,我對那樣的變更完全能接受。)
我非常敬重 antirez,也認可他是自由及開源軟體(FOSS)社群中一位善良且寬厚的成員。但是,不管 Redis 公司宣佈什麼或者做什麼,他們已經永遠失去了我的信任。只要 Redis 的分支版本還存在,我就會繼續使用它們。
網友 placatedmayhem
我很好奇,在這之後社群是否會再次信任 Redis 公司,還是會選擇繼續使用 Valkey。另一個讓人擔心的點是,至少一些大公司的法務部門對 Affero 通用公共許可證(AGPL)下的軟體心存顧慮,這使得仍然採用 BSD 協議的 Valkey 對他們來說更具吸引力。
不管怎樣,感謝 Antirez 以及 Redis 公司的其他成員推動 Redis 重新成為開源軟體(OSS)!
網友 simonw
在這個帖子裡有很多憤世嫉俗的觀點——我理解這種情緒,畢竟無法保證他們未來不會再次變更許可證(他們有一份貢獻者許可協議(CLA),這使得他們能夠這麼做),而且人們因為上一次的許可證變更而感覺受到了背叛。
不過我認為無論如何我們都應該為此慶祝。這是一個明智的決定,這正是社群所希望發生的事情。要是其他使用奇怪許可證的公司能夠看到“Redis 重新採用開源許可證並因此獲得了極大的發展助力”,而不是“Redis 重新採用開源許可證但這對他們毫無幫助”,那就太好了。
網友 kamranjon
我非常喜歡 Redis 的一個重要原因是,它已經成為了我學習新技術和探索資料的工具。比如說,新的向量集合功能讓我得以真正深入探索稠密向量、自定義搜尋以及分類對映等各種領域,這些領域以前對我來說似乎有著很高的入門門檻,但現在我只需透過嵌入模型將資料匯入到 llama.cpp 中,然後儲存在 Redis 裡,並且能夠非常高效地在不同資料集之間進行對映操作。
這在很大程度上得益於其 API 設計——我想不出還有哪個系統的 API 能像 Redis 的 API 這樣經過深思熟慮。它看似簡單,正因為如此,我無需等待客戶端庫去整合 Redis 的新功能,這些功能就能直接使用,因為它們都支援 Redis 序列化協議(RESP),我只需傳送原始命令就行。
說了這麼多,就是想表達我聽到 Antirez 迴歸繼續開發 Redis 時真的非常開心,而且成果比我想象的還要豐富。人們可以選擇使用 Valkey 或者其他任何他們想用的替代品——但我喜歡 Redis,因為它總是在不斷向前發展,讓我能夠探索新事物,要是沒有 Redis,這些新事物不會像現在這樣讓我感覺觸手可及。
Antirez 回應了這個網友的留言:
非常感謝你說的這些暖心話!在開發向量集合(Vector Sets)時,我一直努力遵循你所提到的這種“趨勢”,希望我做到了。謝謝。
– EOF –