Redis作者拒绝微软的Windows补丁

fmms 12年前
     <p>在<span class="wp_keywordlink_affiliate">Redis</span>越来越火的今天,<span class="wp_keywordlink_affiliate">微软</span>老大哥貌似也坐不住了,为了让Redis能原生的运行在<span class="wp_keywordlink_affiliate">Windows</span>上,微软在几周前成立了一个小组,通过几周的工作,通过采用LibUV将Redis成功移植到Win系统下。(<span class="wp_keywordlink_affiliate">LibUV</span>是node.js 中使用的网络IO模块封装,其通过在Win下使用IOCP机制,在Unix下使用libev包实现平台兼容)</p>    <p>于是在Redis的github项目上,微软向Redis项目提交了他们的补丁。</p>    <p>很有意思的,Redis的作者立刻拒绝了将这一补丁加入主干代码中。但称这个补丁还是很有用,能够让在Win下使用Redis进行开发的同学在调试方面更方便,以前可能需要在虚拟机下去启一个Redis。</p>    <p>随后Redis作者又专门<a href="/misc/goto?guid=4958318037304677812" target="_blank">发表了博文</a>将自己对此事的看法进行了叙述。</p>    <p>首先他肯定这不是一件坏事,但是将其放到Redis主干中是不可能的,因为在作者看来,Redis目前有很多重要并且复杂的工作要做,而对到Win 平台的支持显然不在这些事情中。并且按作者的看法,Linux在作为软件部署平台这事上,已经早就将Win平台撂倒了,对Win的支持是不重要也不紧急的 事。</p>    <p>作者还举例说,即使是目前一些比较大的使用Win架构的应用,比如Stack Overflow,也是Win与Linux混用的,所以,Redis不原生支持Win平台,根本不会影响到用户的使用。</p>    <p>实事上,引入LibUV与Redis的设计理念是相背的。Redis设计理念中一个很大的亮点是零包含,尽量不使用外部库,这也是Redis使用自己简单高效的ae.c网络驱动封闭,而不是使用通用的libevent或者其高性能版本libev的原因。</p>    <p>在目前的Redis中,只引入了两个外部扩展,一是更高效的jemalloc(以及支持google的tcmalloc)来替换原来的libc内存 分配器,二是引入了lua库的支持。而这两者分别是在内存分配性能上和功能上都对Redis有非常大的改进。而通过引入LibUV来支持Win平台,看起 来并没有上述二者那么必要和有说服力。<br /> </p>    <div id="p_fullcontent" class="detail">     <p><span class="hilite1"><a href="/misc/goto?guid=4958185538616997143" target="_blank"><strong>Redis</strong> </a>是</span>一个高性能的key-value数据库。 <span class="hilite1">redis</span>的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。</p>     <p>性能测试结果:</p>     <p>SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:</p>     <p><strong>Linux 2.6</strong>, <strong>Xeon X3320 2.5Ghz</strong>.</p>     <p>stackoverflow 网站使用 Redis 做为缓存服务器。</p>    </div>    <p><br /> <br /> 本文转载自: <a href="/misc/goto?guid=4958318038828163423" rel="nofollow" target="_blank">http://blog.nosqlfan.com/html/3528.html</a> </p>