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


87

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

我正在设置一个新的托管解决方案,并且更希望运行64位操作系统,并且由于它是带有SQL Server DB的ASP.Net MVC解决方案,因此该操作系统将是Windows Server 2003或(希望如此)2008。

我知道这可能波及关于32位VS服务器上的64位进行辩论,但我们只想说,我的选择是64位,并且我有一些非常 好的理由。

到目前为止,我已经尝试了许多选项,并找到了一些与在32位计算机上进行安装有关的帮助(并且可能会添加成功),但是由于原始的Windows端口是Win32专用的,因此这几乎无济于事在x64上作为服务安装时。它也依赖于libevent,为此我只能获得Win32编译版本。

我怀疑仅仅将所有这些都加载到C ++中并点击“编译”(对于64位)是行不通的,尤其是由于32位和64位体系结构的复杂差异,但是我想知道是否有人在努力解决这个问题地面?不幸的是,我的专长仅在于托管代码(C#),否则我会自己尝试,但我不敢相信我是唯一尝试在64位Windows服务器上运行memcached的人。 ..我吗?


更新资料

是的,我担心我还在寻找答案-我(使用我的可怜的C ++技能)为稳定构建所做的所有努力都失败了-我浪费了一台服务器,而3个VM仅在尝试中,所以现在求助于真正的专家。有人打算将此移植到64位吗?还是您真的建议我改用MS Velocity?我为这个念头发抖。


更新:@Lars-我确实使用Enyim-很好,但是您指的是客户端,而不是服务器部分。

@DannySmurf-我只能将其作为服务安装在32位OS上。64位操作系统拒绝安装此Win32服务。当然可以,许多Win32代码可在x64架构上无缝运行,因此您可以在Vista / XP 64等平台上运行32位应用程序(例如Office)或游戏,但这在服务方面并不能直接转换。我不是专家,我怀疑这与同步或需要订阅服务的事件有关,并且我怀疑64和32不能很好地发挥作用。很高兴对此进行更正,但很高兴回答您的问题-是的,我已经尝试过。

@OJ-非常感谢您的直截了当的回复。我想了很多,但不确定是否有人提出建议或已经走了这条路。也许当StackOverflow处于活动状态时,那么会有更多的人做出回应,让我知道是否正在调查这个问题,尽管我可以自己尝试编译它-我根本无法“相信”(根据我的C ++经验)将在大型可扩展解决方案的关键组成部分中提供“企业级”可靠性。我认为,在我有信心之前,这需要有教养的干预方法,而不是我未经验证的实验方法。我的一点疏忽可能会使网站瘫痪。哦...直到下一次。


尝试注册服务时发生哪个错误?我安装了一些在32位和64位环境下开发的服务,并且从未遇到过问题。尝试使用程序sc.exe打开32位命令行并注册服务
lsalamon 2010年

Answers:


52

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 Server-仍然免费,但通过群集,基于Web的admin / stats UI等增强了发行版。(我与他们没有任何关系)请访问http://northscale.com/ products / memcached.html并在以下位置下载:http : //www.northscale.com/download.php?a=d

更新2:NorthScale Memcached不再作为独立下载提供。现在,他们已将其纳入名为Membase的商业No-SQL DB产品中。可以将其配置为仅在Memcached模式下运行(即没有持久性),并且还有100%的免费版本。在这里查看:http : //www.membase.org/downloads

更新3:MemBase与CouchDB一起睡觉,并生产了一种混合产品,称为CouchBase。他们仍然在http://www.couchbase.com/download上提供免费的“社区”版本


3
我没有编辑的代表,但此处的第一个链接目前不正确;在64位与位之间需要一个连字符:blog.northscale.com/northscale-blog/2009/12/…–
Maggie


如何使用Windows命令行配置memcached服务器?我尝试了codeproject.com/Articles/96698/…链接。但是不能配置。
Naren 2014年

25

众所周知,好人通过membase / couchbase /所提供的32位和64位版本仍然可用,但博客URL已更改:

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

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

http://s3.amazonaws.com/downloads.northscale.com/memcached-win32-1.4.4-14.zip

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

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

http://s3.amazonaws.com/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


Couchbase似乎现在正在采用一种不同的方法ouchbase.com/memcached
Mike Gifford

6

可以在以下位置找到Win x64的Memcached 1.4.5二进制文件:http : //downloads.northscale.com/memcached-1.4.5-amd64.zip

另一个选择是从此处安装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/


6

最新的二进制文件

NorthScale确实有较旧的版本(最新版本是1.4.5,从2010年4月开始),但是在他的GitHub存储库github中有一个人提供了使用Cygwin编译的Windows 64位Memcached二进制文件(但他们不需要安装)。 com / nono303 / memcached

例如,最新版本(截至撰写此答案时)的二进制文件1.5.16在此处。有32位和64位版本。

Memcached作为Windows服务

如果要将其作为Windows服务安装,则可以使用例如开源的Non-Sucking Service Manager

nssm install memcached c:\path\to\memcached.exe
nssm start memcached

有关详细信息,请参见文档


3

我个人认为您必须使用64位编译器(显然是在64位计算机上)重新编译应用程序,才能在64位平台上充分利用Memcached。根据代码,这可能并非易事。如果考虑到它是64位可移植性编写的,那么它可能是一个简单的重新编译。如果还没有,那么在构建它之前,您可能需要进行大量修补。然后必须验证是否没有损坏任何东西!

我认为您根本不会高估32位和64位之间的差异。一个常见的错误是认为作业实际上是简单的重新编译,而实际上不是。存在比大多数人意识到的更多的可移植性问题。仅仅因为应用程序已构建并且您最终获得了二进制文件,并不意味着二进制文件将按应有的方式运行。特别是当它可能与其他32位代码交互时。

话虽如此,值得一试!

祝好运。干杯!


@Lars:我建议在尝试回答之前先阅读问题。

@John Sible&@DannySmurf:鉴于Memcached的性质及其要实现的目标,您肯定不想在64位计算机上运行32位版本吗?如果您拥有支持64位的计算机,则可以运行64位版本以充分利用硬件的功能。


3

我有一个用于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的使用内存。


2

我只是在64位Windows系统上搜索memcached,发现了这一点。到目前为止,还没有任何Win64 memcached版本。但是我只是通过cmd用适当的命令启动了memcached.exe,它运行得很好。我正在使用Windows Vista 64位,不知道Vista和服务器版本之间是否有任何区别。

亲切的问候


为此,谢谢-从cmd启动不是问题-将其作为服务安装是问题。问候,罗伯G
RobertTheGrey 2009年

1

Dude,Codeplex是您的朋友->检查它的端口。它曾经有一个64位版本,但是您可以下载最新版本并编译为64位(相当简单),也可以检查以前的版本。


1
嗨Pure.Krome,感谢您提供信息,但我已经看过此页面,而且从未见过64位服务器版本。而且不会-根据上述OJ的回答,除非以这种方式编写代码,否则您不能仅仅“轻松地”编译为64位,并且使用内存工作始终是测试该理论的一个糟糕地方……
RobertTheGrey

嗯。ahh-> x64位是BETA版本,因此已被一些较新的更新所取代。有人在这里找到:codeplex.com/memcachedproviders/Release/...
Pure.Krome

1

32位版本可通过WOW64在64位上运行,但该过程仍限于2GB,使用64位版本,您可以将其扩展到超过一台计算机所拥有的范围。


0

您确定32位版本无需修改就可以在64位Windows上运行吗?大多数事情都可以。

失败了,您实际上是否尝试过仅将其编译为64位?对人们提出相同问题的一些Google网上论坛等进行的简短扫描表明,这可能正是解决此问题的方法。我认为您可能高估了32位和64位Windows之间的差异(至少就编译本机应用程序而言)。


0

仅供参考,直到我以管理员身份运行memcached之前,我无法将64位版本(从此处http://labs.northscale.com/memcached-packages/)安装为服务。

我只是转到可执行文件的属性,然后转到“兼容性”选项卡,然后选中“以管理员身份运行该程序”(有很多其他方法可以执行此操作,但这似乎最简单)

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

安装完服务后,别忘了启动服务:)


0

您总是可以在一个盒子上运行多个32位Memcached进程实例,从而使该计算机总共可以提供2GB以上的Memcache空间。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.