antirez:Redis6真的來了

12月20號,Redis發(fā)布了Redis6-rc1版本哈踱,作者antirez也在自己的博客中宣布了這一消息撒顿,并對Redis6版本做了一些介紹,以下是譯文肴捉。

沒錯,新版本的Redis已經(jīng)到了候選發(fā)布狀態(tài)(RC版)叔收,幾個月后,你就可以在各大應(yīng)用市場看到新版本的Redis了傲隶。我想這大概是迄今為止饺律,Redis最接近“企業(yè)級”應(yīng)用的一個版本了,有趣的是跺株,在這之前我花了很長時間來理解什么是企業(yè)級應(yīng)用复濒。我認(rèn)為我并不喜歡這個詞,但是它還是有一些意義的∑故。現(xiàn)在Redis可以說是無處不在巧颈,并且仍然能夠“縮小規(guī)模”:你可以直接下載它袖扛,在30秒內(nèi)完成編譯砸泛,然后在不需要進(jìn)行任何配置的情況下啟動它。但是無處不在意味著加密和ACL之類的環(huán)境也是必須要支持的蛆封,因此Redis必須要感謝我唇礁,盡管我極力追求簡單性。

有趣的是惨篱,Redis ACL雖然是以一種武斷的方式進(jìn)行添加盏筐,但它幾乎與你在其他系統(tǒng)中看到的都不一樣,對SSL的支持也是經(jīng)過了數(shù)次迭代砸讳,以達(dá)到最終使用最有意義的想法的目的琢融。從讓核心功能盡可能簡潔的角度來看,我對這些改動還是很滿意的簿寂。

Redis6為我們帶來的不僅僅是ACLs和SSL漾抬,據(jù)我所知,這是Redis發(fā)行的功能最多常遂,也是參與人數(shù)最多的一個版本了奋蔚。都有誰為Redis6做出了貢獻(xiàn)呢?我生成了一個貢獻(xiàn)者列表(我知道這個列表很爛,我只是簡單生成了一下)泊碑,他們至少有兩個commit坤按,并且不包括合并提交。另外馒过,由于我不斷在這里或那里修復(fù)許多小東西臭脓,因此我的提交次數(shù)可能會遠(yuǎn)超他人。

685  antirez
81  zhaozhao.zz
76  Oran Agra
51  artix
28  Madelyn Olson
27  Yossi Gottlieb
15  David Carlier
14  Guy Benoish
14  Guy Korland
13  Itamar Haber
9  Angus Pearson
8  WuYunlong
8  yongman
7  vattezhang
7  Chris Lamb
5  Dvir Volk
5  meir@redislabs.com
5  chendianqiang
5  John Sully
4  dejun.xdj
4  Daniel Dai
4  Johannes Truschnigg
4  swilly22
3  Bruce Merry
3  filipecosta90
3  youjiali1995
2  James Rouzier
2  Andrey Bugaevskiy
2  Brad Solomon
2  Hamid Alaei
2  Michael Chaten
2  Steve Webster
2  Wander Hillen
2  Weiliang Li
2  Yuan Zhou
2  charsyam
2  hujie
2  jem
2  shenlongxing
2  valentino
2  zhudacai 00228490
2  喜歡蘭花山丘

感謝上面各位的貢獻(xiàn)腹忽,這是一次很棒的團隊合作来累。

下面的列表是新功能列表:

  • 很多新的模塊API
  • 更好的過期周期
  • SSL
  • ACLs
  • RESP3
  • 客戶端緩存
  • 線程I/O
  • 副本上的無盤復(fù)制
  • Redis-benchmark支持集群+Redis-cli的改進(jìn)
  • 系統(tǒng)支持重寫
  • Redis Cluster代理與Redis6一起發(fā)布(不同倉庫)
  • Redis 6發(fā)布了Disque模塊(不同倉庫)

如你所見,有很多比較大的改動窘奏,接下來我會選擇其中幾個進(jìn)行介紹嘹锁。

RESP3

10年之后,我們需要一個新的協(xié)議着裹,我在這篇博客中進(jìn)行了廣泛的討論:http://antirez.com/news/125领猾,但我隨后改變了主意,所以RESP3在Redis6中是“選擇加入”骇扇。連接最開始是RESP2模式摔竿,只有當(dāng)你使用新的HELLO命令握手時,你才會進(jìn)入新的協(xié)議模式少孝。

我們?yōu)槭裁葱枰粋€新的協(xié)議呢继低?因為舊的語義不夠清晰。RESP3中還有一些其他功能稍走,但主要思想是能夠直接從Redis返回復(fù)雜數(shù)據(jù)類型袁翁,而客戶端不必知道要轉(zhuǎn)換為哪種類型的數(shù)組,或者返回的數(shù)字是否能夠轉(zhuǎn)換成布爾值等等婿脸。

由于RESP3不是僅有的協(xié)議梦裂,所以它的使用速度比預(yù)期要慢一些,但這也許不是一件壞事盖淡,因為這樣我們就有足夠的時間來進(jìn)行適應(yīng)和調(diào)整年柠。

ACLs

對Redis ACLs最好對介紹就是ACL文檔本身(https://redis.io/topics/acl),即使它可能需要進(jìn)行一些更新以匹配最近對修改褪迟。我在這里更想討論一下使用它的動機冗恨。Redis需要ACLs是因為人們需要在更廣泛的使用ACLs,以達(dá)到更好的控制客戶端可以做的某些操作味赃。另一個增加ACLs的主要原因是進(jìn)行隔離掀抹,以保護(hù)數(shù)據(jù)免受應(yīng)用程序錯誤的侵害。如果你的工作節(jié)點只能做BRPOPLPUSH操作心俗,那么新的開發(fā)人員使用FLUSHALL的機會就比較少傲武,也能夠降低生產(chǎn)環(huán)境執(zhí)行FLUSHALL的可能性蓉驹。

在Redis中ACLs的操作都是免費的,因為如果你不用它們揪利,性能上就不會受影響态兴,畢竟這部分開銷無法衡量。我想這是最好的處理方法了疟位,值得一提的是瞻润,我們現(xiàn)在為ACL提供了Redis模塊接口,因此你可以編寫自定義身份驗證方法甜刻。

SSL

現(xiàn)在是2019年绍撞,馬上要到2020年了,因此有一些新的規(guī)則得院。唯一的問題就是如何正確執(zhí)行傻铣,正確執(zhí)行的前提是錯誤執(zhí)行并理解其局限性,然后對Redis連接進(jìn)行抽象以正確執(zhí)行祥绞。這項工作是在完全沒有我的幫助下進(jìn)行的非洲,這也體現(xiàn)了Redis開發(fā)過程的改變。

客戶端緩存

關(guān)于客戶端緩存就谜,我寫了一篇博客(http://antirez.com/news/130),然而我認(rèn)為這是Redis6最不成熟的功能里覆。沒錯丧荐,服務(wù)器可以協(xié)助你在客戶端緩存,這看起來很酷喧枷,但我想要在Redis6 GA版本出來之前對這個功能進(jìn)行進(jìn)一步優(yōu)化虹统。尤其是增加一種新的模式,在這個模式下隧甚,服務(wù)器不維護(hù)客戶端的狀態(tài)或者盡量少的維護(hù)客戶端的狀態(tài)车荔,更多使用消息進(jìn)行交互。而且戚扳,現(xiàn)在無法將某些“cache slots”的過期消息合并成一個忧便。這是一個不錯的想法,我們將在一月份著重做這部分功能帽借。

Disque成為一個模塊

最終珠增,我做到了(https://github.com/antirez/disque-module),我對這個結(jié)果非常滿意砍艾。

Disque作為一個模塊確實顯示的Redis模塊系統(tǒng)的強大蒂教。集群消息總線API,能夠阻止和恢復(fù)客戶端脆荷,計時器凝垛,模塊私有數(shù)據(jù)的AOF和RDB控制懊悯。如果你還不知道什么是Disque,可以去看一下這個倉庫的README梦皮。

集群代理

我的同事Fabio在這個工作中花費了幾個月的時間:https://github.com/artix75/redis-cluster-proxy

我想看到這個功能已經(jīng)很多年了炭分,當(dāng)主題是Redis集群支持時,客戶端的需要進(jìn)行的操作總是很分散届氢,現(xiàn)在我們有了代理(還在進(jìn)行中)欠窒,就可以做很多有趣的事情了。最主要的功能是為客戶端抽象Redis集群退子,就像它們正在與單個實例通信一樣岖妄。另一個功能就是至少在簡單且客戶端僅使用簡單命令和功能時執(zhí)行多路復(fù)用。當(dāng)要阻止或執(zhí)行事務(wù)時寂祥,代理為客戶端分配一組不同的連接荐虐。代理也是完全線程級的,所以讓大部分CPU時間花在I/O上丸凭,這是一種最大化CPU使用率的好方法福扬。你可以查看README文件,然后試一試這個功能惜犀。

Modules

Redis6的模塊API完全是一個新的等級了铛碑。這是Redis發(fā)展最快的部分之一,因為我們從最開始就使用模塊系統(tǒng)來開發(fā)非常復(fù)雜的東西虽界,而不僅僅是瑣碎的示例汽烦。前端時間,我啟動了Disque端口莉御,這也促使我為模塊系統(tǒng)帶來新功能∑餐蹋現(xiàn)在,你可以把Redis看成一個框架礁叔,可以講系統(tǒng)作為模塊進(jìn)行編寫牍颈,避免從頭造輪子,同時也可以獲得BSD許可琅关,Redis實際上是一個可以用來編寫系統(tǒng)的開放平臺煮岁。

內(nèi)部

Redis內(nèi)部有非常多的優(yōu)化:復(fù)制命令的方式發(fā)生了很大變化,過期使用了另一種算法涣易,該算法更快且緩存更明顯人乓。

Status和ETA

現(xiàn)在我們已經(jīng)有了RC1,我希望在3月末都毒,最晚5月色罚,你就可以看到GA版本準(zhǔn)備就緒。

現(xiàn)在账劲,Redis6絕對是可測試的戳护,并且遇到錯誤的機會很小金抡。但它包含了大量的代碼更改,并且新功能由新的代碼組成腌且,也從沒有人在生產(chǎn)環(huán)境中運行過這些代碼梗肝。所以如果你找到了bug,請以最好的方式描述一下發(fā)生的情況并報告給我們铺董。

感謝所有人為該版本做出貢獻(xiàn)的人和在接下來幾個月中幫助我們維護(hù)它處于穩(wěn)定狀態(tài)的人巫击。

啊,我差點忘了精续,這是第6版的LOLWUT命令交互圖:

lolwut6

每次運行都會隨機生成不同的景觀坝锰。

博客原文地址

http://antirez.com/news/131

譯者注

正如作者所說,Redis6帶來了很多新的功能重付。剛發(fā)布的版本肯定不能拿到線上去玩顷级,但是自己折騰一下,提前感受一下也不錯确垫。特別是RESP3和客戶端緩存都是我比較期待的弓颈。另外還有新的過期算法,這個之前沒怎么聽說删掀,也值得研究一下翔冀。不說了,我先下為敬披泪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纤子,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子付呕,更是在濱河造成了極大的恐慌计福,老刑警劉巖跌捆,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徽职,死亡現(xiàn)場離奇詭異,居然都是意外死亡佩厚,警方通過查閱死者的電腦和手機姆钉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抄瓦,“玉大人潮瓶,你說我怎么就攤上這事「奇ⅲ” “怎么了毯辅?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長煞额。 經(jīng)常有香客問我思恐,道長沾谜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任胀莹,我火速辦了婚禮基跑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘描焰。我一直安慰自己媳否,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布荆秦。 她就那樣靜靜地躺著篱竭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萄凤。 梳的紋絲不亂的頭發(fā)上室抽,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音靡努,去河邊找鬼坪圾。 笑死,一個胖子當(dāng)著我的面吹牛惑朦,可吹牛的內(nèi)容都是我干的兽泄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼漾月,長吁一口氣:“原來是場噩夢啊……” “哼病梢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梁肿,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蜓陌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吩蔑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钮热,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年烛芬,在試婚紗的時候發(fā)現(xiàn)自己被綠了隧期。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡赘娄,死狀恐怖仆潮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遣臼,我是刑警寧澤性置,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站揍堰,受9級特大地震影響鹏浅,放射性物質(zhì)發(fā)生泄漏辟灰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一篡石、第九天 我趴在偏房一處隱蔽的房頂上張望芥喇。 院中可真熱鬧,春花似錦凰萨、人聲如沸继控。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽武通。三九已至,卻和暖如春珊搀,著一層夾襖步出監(jiān)牢的瞬間冶忱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工境析, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留囚枪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓劳淆,卻偏偏與公主長得像链沼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沛鸵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容