我可以让Memcached在Windows(64位)64位环境中运行吗?

有谁知道如何何时如何让Memcached运行在Windows 64位环境?

我正在build立一个新的托pipe解决scheme,而且更愿意运行一个64位的操作系统,而且由于它是一个使用SQL Server数据库的ASP.Net MVC解决scheme,所以操作系统要么是Windows Server 2003,要么是(跳跃!)2008。

我知道这可能会引起关于服务器上的32位和64位的争论,但我们只是说,我的偏好是64位,我有一些很好的理由。

到目前为止,我已经尝试了一些选项,并find了一些有关在32位机器上启动的帮助 (并且我可能会添加成功),但是由于原来的Windows端口是特定于Win32的,所以这很难在x64上作为服务安装时。 它也依赖于libevent ,我只能得到一个Win32编译版本。

我怀疑,简单地加载所有这些在C + +和“编译”(对于64位)将无法正常工作,尤其是32位和64位体系结构的错综复杂的差异,但我想知道是否有人正在努力得到这个地面? 不幸的是,我的专业知识只在托pipe代码(C#),否则我会尝试自己做这件事,但我不能相信我是唯一一个试图让memcached在64位Windows服务器上运行的人。 ..am我??

任何帮助或build议表示赞赏…


更新

是的,恐怕我仍然在寻找一个答案 – 我所有的努力(用我可怜的C ++技能),使一个稳定的构build失败 – 我已经抛弃了一台服务器和3个虚拟机只是试试,所以现在我转向真正的专家。 有人计划将其移植到64位? 或者你真的build议我使用MS Velocity代替? 我想起了这个想法


更新:@Lars – 我实际上使用Enyim – 这是非常好的,但是你指的是客户端,而不是服务器部分。

@DannySmurf – 我只能在32位操作系统上将其作为服务安装。 64位操作系统拒绝安装此Win32服务。 当然是的,很多Win32代码可以在x64架构上无缝运行,因此你可以运行32位应用程序(比如Office),或者在Vista / XP 64等上运行游戏,但是这不会直接影响到服务。 我不是专家,我怀疑它与服务需要订阅的同步或事件有关,我怀疑64和32不会很好地发挥作用。 我很高兴能够纠正这一切,但要回答你的问题 – 是的,我试过了。

@OJ – 非常感谢你的直接回应。 我想了很多,但不知道有没有人有build议或已经走下了这条路。 也许当StackOverflow是LIVE,那么更多的人会回应,让我知道这是否是被研究的东西,虽然我可以尝试自己编译它 – 我根本不能“信任”(用我的C ++经验级别)将在大型可扩展解决scheme的关键组件中提供“企业级”可靠性。 我认为这需要受过教育的干预,而不是我毫无经验的实验方法,然后才能有信心。 我的一个小小的疏忽,可能会使网站失效。 哦,直到下一次…

North Scale实验室已经发布了用于Windows x64的memcached 1.4.4版本:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

http://labs.northscale.com/memcached-packages/

更新:他们最近发布的Memcached服务器 – 仍然是免费的,但与群集,基于Web的pipe理/统计用户界面等增强发行版(我没有任何相关的)在http://northscale.com/检查出来products / memcached.html下载: http : //www.northscale.com/download.php?a=d

更新2:NorthScale Memcached不再作为独立的下载。 现在,他们已经将它作为其商业化的No-SQL DB产品(称为Membase)的一部分。 它可以configuration为在Memcached-only模式下运行(即没有持久性),也有100%的免费版本。 看看这里: http : //www.membase.org/downloads

更新3:MemBase已经睡了CouchDB,并产生了一个名为CouchBase的混合产品。 他们仍然提供免费的“社区”版本http://www.couchbase.com/download

大家知道,来自membase / couchbase / any的好人build立的32位和64位版本仍然可用,但博客URL已经改变了:

作为Windows服务的memcached 1.4.4的32位二进制文​​件:

http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available

downloads.northscale.com/memcached-win32-1.4.4-14.zip

作为Windows服务的memcached 1.4.4的64位二进制文​​件:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

downloads.northscale.com/memcached-win64-1.4.4-14.zip

64位版本的运行时间不正确。

所以也许你想要这个1.4.2的二进制代码:

http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/

MemCacheDManager附带的32位版本也支持在Windows 2000(无IPv6)上运行:

http://allegiance.chi-town.com/MemCacheDManager.aspx http://allegiance.chi-town.com/Download.aspx?dl=Releases/MemCacheDManager_1_0_3_0.msi&rurl=MemCacheDManager.aspx

解压缩msi:

msiexec / a Releases_MemCacheDManager_1_0_3_0.msi / qb TARGETDIR = c:\ memcached

获取x64的Memcached 1.4.5二进制文件可以在这里find: http : //downloads.northscale.com/memcached-1.4.5-amd64.zip

另一个select是从这里安装Couchbase Server 1.8.0 x64: http : //www.couchbase.com/download ,捆绑的memcached似乎是1.7.1.1版本(听起来像是一个内部版本,我不知道是哪个是真正的)

至于将memcached作为服务运行,本教程可能已经足够了:

http://www.richardnichols.net/2010/08/install-memcached-on-windows-server/

我个人觉得你必须使用64位编译器(显然是在64位机器上)重新编译应用程序,才能在64位平台上获得最多的Memcached。 根据代码,这可能不是一件容易的事情。 如果它是用64位可移植性编写的,那么它可能是一个简单的重新编译。 如果没有的话,那么在开始构build之前,你可能会修补相当多的补丁。然后你必须确认你没有破坏任何东西!

我不认为你高估了32位和64位之间的差异。 一个常见的错误是假定这个工作是一个简单的重新编译,而事实上并非如此。 可移植性问题比大多数人意识到的要多。 只是因为应用程序的构build和最终得到了二进制文件,并不意味着二进制文件应该像它应该那样工作。 尤其是当它可能与其他32位代码交互时。

话虽如此,可能值得一试!

祝你好运。 干杯!


@Lars:我build议在尝试回答之前阅读这个问题。

@John Sibly&@DannySmurf:鉴于Memcached的本质以及它的目标是什么,当然你不想在64位机器上运行32位版本? 如果您的计算机具有64位function,则运行64位版本以充分利用硬件function将是有意义的。

我有一个最初从这里下载的Win32的memcached-1.2.1: http : //jehiah.cz/projects/memcached-win32/ (但现在由于某种原因,它是一个断开的链接)。

这就是我如何设法在Windows Server 2008 R2(64位)上为Win32运行memcached。 memcached.exe – > 属性 – > 兼容性 – > 在兼容模式下运行此程序:Windows XP(SP 3) 。 请注意,用户Uriel Katz在本次讨论中提到这种方法限制在2GB内存使用。

伙计, Codeplex是你的朋友 – > 检查它的这个端口 。 它曾经有一个64位版本,但你可以下载最新的和64位(很容易)编译或检查以前的版本。

我只是在64位Windows系统上寻找memcached,发现这一点。 到目前为止,没有任何Win64的memcached版本。 但是我只是用cmd命令启动了memcached.exe,运行正常。 我使用的是Windows Vista 64位,不知道Vista和服务器版本是否有区别。

最诚挚的问候Fleshgrinder

32位版本通过WOW64在64位上运行,但是进程仍然限制在2GB,而64位版本则可以超越一台机器。

你确定32位版本不只是在64位Windows上运行,没有修改? 大多数情况下。

否则,你真的试过只编译它为64位? 对人群问这个问题的几个Google网上论坛等进行了简短的扫描后发现,这可能正是解决scheme。 我认为你可能高估了32位和64位Windows之间的差异(至less就编译原生应用程序而言)。

仅供参考,我无法得到64位版本(从这里http://labs.northscale.com/memcached-packages/ )作为服务安装,直到我作为pipe理员运行memcached。

我只是去了可执行文件的属性,然后是兼容性选项卡,并选中“以pipe理员身份运行此程序”(有很多其他的方法来做到这一点,但似乎最简单)

然后,我终于能够成功运行:memcached -d install

安装之后不要忘记启动服务:)

您可以在一个盒子上始终运行32位memcached进程的多个实例,从而使该计算机可以提供大于2GB的memcache空间。

如果这可以帮助,我已经完成了一个基于编译通过此页面 ( 直接链接到NorthScale二进制 )的memcached 1.4.5 64位的包装。

这是一个Windows服务,它在生产环境中工作得非常好:
https://github.com/eric-b/MemcachedService64