【问题标题】:Can I get Memcached running on a Windows (x64) 64bit environment?我可以让 Memcached 在 Windows (x64) 64 位环境中运行吗?
【发布时间】:2010-09-05 18:02:57
【问题描述】:

有谁知道 IFWHENHOW 我可以让Memcached 在 Windows 64 位环境中运行吗?

我正在设置一个新的托管解决方案,并且更喜欢运行 64 位操作系统,因为它是一个带有 SQL Server DB 的 ASP.Net MVC 解决方案,所以操作系统要么是 Windows Server 2003,要么是(希望如此! ) 2008 年。

我知道这可能会引发关于服务器上 32 位与 64 位的争论,但我只想说我的偏好是 64 位,并且我有一些verygood 的原因。

到目前为止,我已经尝试了许多选项,并找到了一个 bithelp 与在 32 位机器上安装它相关(我可能会添加成功),但由于原始 Windows port 是 Win32具体来说,这在 x64 上作为服务安装时几乎没有帮助。它还依赖于libevent,对此我只能获得 Win32 编译版本。

我怀疑简单地在 C++ 中加载所有这些并点击“编译”(对于 64 位)是行不通的,尤其是因为 32 位和 64 位架构之间的复杂差异,但我想知道是否有人正在研究让这个离开地面?不幸的是,我的专长仅在于托管代码 (C#),否则我会尝试自己承担这一点,但我不敢相信我是唯一一个试图让 memcached 在 64 位 Windows 服务器上运行的人....是我吗?


更新

是的,恐怕我仍在寻找这个问题的答案 - 我所有的努力(用我可怜的 C++ 技能)进行稳定构建的所有努力都失败了 - 我已经破坏了一台服务器和 3 台虚拟机尝试一下,所以现在我求助于真正的专家。 有人打算将其移植到64位吗?还是您真的建议我改用 MS Velocity?想到这里我不寒而栗。


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

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

@OJ - 非常感谢您的直截了当的回复。我想了很多,但不确定其他人是否有建议或已经走这条路。也许当 StackOverflow 上线时,会有更多人回复并让我知道这是否正在研究,虽然我可以尝试自己编译它 - 我根本无法“相信”(以我的 C++ 经验水平)它将在大型可扩展解决方案的关键组件中提供“企业级”可靠性。我认为这需要有教养的干预,而不是我未经消毒的实验方法,然后我才能有信心。我的一个小小的疏忽可能会导致网站崩溃。哦,好吧……直到下一次。

【问题讨论】:

  • 尝试注册服务时出现什么错误?我安装了几个在 32 位、64 位环境中开发的服务,从来没有遇到过问题。尝试在 32 位中打开命令行并使用程序 sc.exe 注册服务

标签: c# c++ windows 64-bit memcached


【解决方案1】:

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 的管理/统计 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 提供免费的“社区”版本

【讨论】:

【解决方案2】:

人们知道,由 membase/couchbase/whatever 的好人构建的 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

【讨论】:

【解决方案3】:

可在此处找到适用于 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/

【讨论】:

    【解决方案4】:

    最新的二进制文件

    NorthScale 有非常旧的版本(最新的是 2010 年 4 月的 1.4.5)但是有一个人在@987654321 中提供了使用 Cygwin 编译的 Windows 的 64 位 Memcached 二进制文件(但他们不需要安装) @。

    例如,最近发布版本的二进制文件(在撰写此答案时)1.5.16 are here。有 32 位和 64 位版本。

    Memcached 作为 Windows 服务

    如果你想将它安装为 Windows 服务,你可以使用例如开源的Non-Sucking Service Manager:

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

    详情请参阅documentation

    【讨论】:

      【解决方案5】:

      我个人认为您必须使用 64 位编译器(显然是在 64 位机器上)重新编译应用程序才能在 64 位平台上充分利用 Memcached。根据代码,这可能不是一件容易的事。如果它是在考虑 64 位可移植性的情况下编写的,那么它可能是一个简单的重新编译。如果还没有,那么您很可能在构建它之前需要进行相当多的修补......然后您必须验证您没有破坏任何东西!

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

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

      祝你好运。干杯!


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

      @John Sibly & @DannySmurf:考虑到 Memcached 的性质和它的目标,您肯定不想在 64 位机器上运行 32 位版本吗?如果您有一台支持 64 位的机器,那么运行 64 位版本以充分利用硬件的功能是有意义的。

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

          我只是在 64 位 Windows 系统上搜索 memcached 并找到了这个。到目前为止,还没有任何 Win64 memcached 版本。但是我刚刚通过 cmd 使用适当的命令启动了 memcached.exe,它运行良好。我用的是Windows Vista 64bit,不知道Vista和服务器版本有什么区别。

          最诚挚的问候 绞肉机

          【讨论】:

          • 感谢您 - 从 cmd 启动它不是问题 - 将其作为服务安装是问题。问候,Rob G
          【解决方案8】:

          老兄,Codeplex 是你的朋友 -> check out this port 。它曾经有一个 64 位版本,但你可以下载最新版本并编译为 64 位(很容易)或查看以前的版本。

          【讨论】:

          • 嗨 Pure.Krome,感谢您提供的信息,但我已经看过这个页面,但我从未见过 64 位服务器版本。不 - 根据上面 OJ 的回答,除非代码是以这种方式编写的,否则您不能仅仅“轻松”编译为 64 位,并且使用内存始终是测试该理论的坏地方......
          • 嗯。啊 -> x64 位是 BETA 版本,所以它已被一些更新的更新所取代。在这里找到:codeplex.com/memcachedproviders/Release/…
          【解决方案9】:

          32 位版本通过 WOW64 在 64 位上运行,但进程仍然限制为 2GB,使用 64 位版本可以超越单台机器。

          【讨论】:

            【解决方案10】:

            您确定 32 位版本不只是在 64 位 Windows 上运行,无需修改?大多数事情都是这样。

            如果做不到这一点,您是否真的尝试过将其编译为 64 位?对人们提出相同问题的几个谷歌群组等进行简要扫描表明,这可能正是解决此问题的方法。我认为您可能高估了 32 位和 64 位 Windows 之间的区别(至少就编译本机应用程序而言)。

            【讨论】:

              【解决方案11】:

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

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

              然后我终于可以成功运行了:memcached -d install

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

              【讨论】:

                【解决方案12】:

                您始终可以在一个机器上运行多个 32 位 memcached 进程实例,从而使该机器能够提供总共 > 2GB 的 memcache 空间。

                【讨论】:

                  【解决方案13】:

                  如果这有帮助,我已经完成了一个基于通过this page (direct link to NorthScale binary) 找到的 memcached 1.4.5 64 位编译的包装器。

                  这是一个 Windows 服务,在生产环境中运行良好:
                  https://github.com/eric-b/MemcachedService64

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2011-11-19
                    • 2017-07-04
                    • 2012-06-17
                    • 2013-11-06
                    • 2023-03-09
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-03-15
                    相关资源
                    最近更新 更多