Redis作者拒绝加入Windows补丁

[摘要]LibUV是node.js 中使用的网络IO模块封装,其通过在Win下使用IOCP机制,在Unix下使用libev包实现平台兼容,为了让Redis能原生的运行在Windows上,微软在几周前成立了一个小组,通过几周的工作,通过采用LibUV将Redis成功移植到Win系统下。

(中国软件网讯)在Redis越来越火的今天,微软老大哥貌似也坐不住了。LibUV是node.js 中使用的网络IO模块封装,其通过在Win下使用IOCP机制,在Unix下使用libev包实现平台兼容,为了让Redis能原生的运行在Windows上,微软在几周前成立了一个小组,通过几周的工作,通过采用LibUV将Redis成功移植到Win系统下。于是在Redis的github项目上,微软向Redis项目提交了他们的补丁。

很有意思的,Redis的作者立刻拒绝了将这一补丁加入主干代码中。但称这个补丁还是很有用,能够让在Win下使用Redis进行开发的同学在调试方面更方便,以前可能需要在虚拟机下去启一个Redis。

随后Redis作者又专门发表了博文将自己对此事的看法进行了叙述。

首先他肯定这不是一件坏事,但是将其放到Redis主干中是不可能的,因为在作者看来,Redis目前有很多重要并且复杂的工作要做,而对到Win 平台的支持显然不在这些事情中。并且按作者的看法,Linux在作为软件部署平台这事上,已经早就将Win平台撂倒了,对Win的支持是不重要也不紧急的 事。

作者还举例说,即使是目前一些比较大的使用Win架构的应用,比如Stack Overflow,也是Win与Linux混用的,所以,Redis不原生支持Win平台,根本不会影响到用户的使用。

实事上,引入LibUV与Redis的设计理念是相背的。Redis设计理念中一个很大的亮点是零包含,尽量不使用外部库,这也是Redis使用自己简单高效的ae.c网络驱动封闭,而不是使用通用的libevent或者其高性能版本libev的原因。

在目前的Redis中,只引入了两个外部扩展,一是更高效的jemalloc(以及支持google的tcmalloc)来替换原来的libc内存 分配器,二是引入了lua库的支持。而这两者分别是在内存分配性能上和功能上都对Redis有非常大的改进。而通过引入LibUV来支持Win平台,看起 来并没有上述二者那么必要和有说服力。




免责声明:

本站系本网编辑转载,会尽可能注明出处,但不排除无法注明来源的情况,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系, 来信: liujun@soft6.com 我们将在收到邮件后第一时间删除内容!

[声明]本站文章版权归原作者所有,内容为作者个人观点,不代表本网站的观点和对其真实性负责,本站拥有对此声明的最终解释权。