Redis作者拒絕微軟的Windows補(bǔ)丁
在Redis越來(lái)越火的今天,微軟老大哥貌似也坐不住了,為了讓Redis能原生的運(yùn)行在Windows上,微軟在幾周前成立了一個(gè)小組,通過(guò)幾周的工作,通過(guò)采用LibUV將Redis成功移植到Win系統(tǒng)下。(LibUV是node.js 中使用的網(wǎng)絡(luò)IO模塊封裝,其通過(guò)在Win下使用IOCP機(jī)制,在Unix下使用libev包實(shí)現(xiàn)平臺(tái)兼容)
于是在Redis的github項(xiàng)目上,微軟向Redis項(xiàng)目提交了他們的補(bǔ)丁。
很有意思的,Redis的作者立刻拒絕了將這一補(bǔ)丁加入主干代碼中。但稱這個(gè)補(bǔ)丁還是很有用,能夠讓在Win下使用Redis進(jìn)行開(kāi)發(fā)的同學(xué)在調(diào)試方面更方便,以前可能需要在虛擬機(jī)下去啟一個(gè)Redis。
隨后Redis作者又專門發(fā)表了博文將自己對(duì)此事的看法進(jìn)行了敘述。
首先他肯定這不是一件壞事,但是將其放到Redis主干中是不可能的,因?yàn)樵谧髡呖磥?lái),Redis目前有很多重要并且復(fù)雜的工作要做,而對(duì)到Win平臺(tái)的支持顯然不在這些事情中。并且按作者的看法,Linux在作為軟件部署平臺(tái)這事上,已經(jīng)早就將Win平臺(tái)撂倒了,對(duì)Win的支持是不重要也不緊急的事。
作者還舉例說(shuō),即使是目前一些比較大的使用Win架構(gòu)的應(yīng)用,比如Stack Overflow,也是Win與Linux混用的,所以,Redis不原生支持Win平臺(tái),根本不會(huì)影響到用戶的使用。
實(shí)事上,引入LibUV與Redis的設(shè)計(jì)理念是相背的。Redis設(shè)計(jì)理念中一個(gè)很大的亮點(diǎn)是零包含,盡量不使用外部庫(kù),這也是Redis使用自己簡(jiǎn)單高效的ae.c網(wǎng)絡(luò)驅(qū)動(dòng)封閉,而不是使用通用的libevent或者其高性能版本libev的原因。
在目前的Redis中,只引入了兩個(gè)外部擴(kuò)展,一是更高效的jemalloc(以及支持google的tcmalloc)來(lái)替換原來(lái)的libc內(nèi)存分配器,二是引入了lua庫(kù)的支持。而這兩者分別是在內(nèi)存分配性能上和功能上都對(duì)Redis有非常大的改進(jìn)。而通過(guò)引入LibUV來(lái)支持Win平臺(tái),看起來(lái)并沒(méi)有上述二者那么必要和有說(shuō)服力
|