如何在Windows(x64)64位环境上运行Memcached?

时间:2020-03-05 18:39:12  来源:igfitidea点击:

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

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

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

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

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

任何帮助或者建议表示赞赏...

更新

是的,恐怕我仍在寻找我所有的努力(用我的可怜的C ++技能)来解决这个问题,以使稳定的构建失败。真正的专家。
有人打算将此移植到64位吗?还是我们真的建议我改用MS Velocity?我为这个念头发抖...

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

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

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

解决方案

回答

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

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

回答

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

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

话虽如此,也许值得一试!

祝你好运。干杯!

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

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

回答

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

回答

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

最亲切的问候
肉体粉碎机

回答

32位版本可通过WOW64在64位上运行,但该过程仍限于2GB,使用64位版本,我们可以超出此范围,而不仅仅是一台计算机。

回答

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上提供免费的"社区"版本。

回答

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

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

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

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