簡體   English   中英

我可以讓 Memcached 在 Windows (x64) 64 位環境中運行嗎?

[英]Can I get Memcached running on a Windows (x64) 64bit environment?

有誰知道如果何時如何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#),否則我會嘗試自己承擔這個問題,但我不敢相信我是唯一一個試圖讓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++ 經驗水平)它將在大型可擴展解決方案的關鍵組件中提供“企業級”可靠性。 我認為在我有信心之前,它需要受過教育的干預而不是我未經消毒的實驗方法。 我的一個小疏忽可能會使網站癱瘓。 哦,好吧……直到下一次。

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 的管理/統計 UI 等(我與他們沒有任何關系)在http://northscale.com/ 上查看products/memcached.html並下載: http : //www.northscale.com/download.php?a=d

更新 2:NorthScale Memcached 不再作為獨立下載提供。 現在,他們已將其作為名為 Membase 的商業 No-SQL DB 產品的一部分。 它可以配置為在 Memcached-only 模式下運行(即沒有持久性),並且還有一個 100% 免費版本。 在這里查看: http : //www.membase.org/downloads

更新 3:MemBase 與 CouchDB 合作,並生產了一種名為 CouchBase 的混合產品。 他們仍然在http://www.couchbase.com/download提供免費的“社區”版本

只是讓人們知道,由來自 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

可以在此處找到適用於 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/

最新的二進制文件

NorthScale 有非常舊的版本(最新的是 2010 年 4 月的 1.4.5),但有一個人在他的 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

有關詳細信息,請參閱文檔

我有一個用於 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 內存的使用。

我個人認為您必須使用 64 位編譯器(顯然在 64 位機器上)重新編譯應用程序才能在 64 位平台上充分利用 Memcached。 根據代碼,這可能不是一件容易的事。 如果它是在考慮 64 位可移植性的情況下編寫的,那么它可能是一個簡單的重新編譯。 如果沒有,那么在構建它之前你很可能需要進行相當多的修補......然后你必須驗證你沒有破壞任何東西!

我認為您根本沒有高估 32 位和 64 位之間的差異。 一個常見的錯誤是假設該作業是簡單的重新編譯,而實際上並非如此。 便攜性問題比大多數人意識到的要多。 僅僅因為應用程序構建並且你最終得到一個二進制文件,並不意味着二進制文件會像它應該的那樣運行。 特別是當它可能與其他 32 位代碼交互時。

話雖如此,可能值得一試!

祝你好運。 干杯!


@Lars:我建議在嘗試回答之前閱讀問題。

@John Sably & @DannySmurf:考慮到 Memcached 的性質及其目標,您肯定不想在 64 位機器上運行 32 位版本嗎? 如果您有一台支持 64 位的機器,那么運行 64 位版本以充分利用硬件的功能是有意義的。

我只是在 64 位 Windows 系統上搜索 memcached 並找到了這個。 到目前為止,還沒有任何 Win64 memcached 版本。 但我剛剛通過 cmd 使用適當的命令啟動了 memcached.exe,它運行良好。 我使用的是 Windows Vista 64 位,不知道 Vista 和服務器版本之間是否有任何差異。

最親切的問候 Fleshgrinder

32 位版本通過 WOW64 在 64 位上運行,但該進程仍然限制為 2GB,使用 64 位版本您可以超越單個機器將擁有的容量。

伙計, Codeplex是你的朋友 ->查看它的這個端口 它曾經有一個 64 位版本,但您可以下載最新版本並編譯為 64 位(非常簡單)或檢查以前的版本。

如果這可以提供幫助,我已經根據通過此頁面找到的 memcached 1.4.5 64 位編譯完成了一個包裝器(直接鏈接到 NorthScale 二進制文件)。

這是一個 Windows 服務,它在生產環境中運行良好:
https://github.com/eric-b/MemcachedService64

僅供參考,在我以管理員身份運行 memcached 之前,我無法將 64 位版本(從這里http://labs.northscale.com/memcached-packages/ )安裝為服務。

我只是轉到可執行文件的屬性,然后是兼容性選項卡,然后選中“以管理員身份運行此程序”(有很多其他方法可以執行此操作,但似乎最簡單)

然后我終於可以成功運行了:memcached -d install

也不要忘記在安裝后啟動服務:)

您始終可以在一台機器上運行多個 32 位 memcached 進程實例,從而使該機器能夠提供總計 > 2GB 的 memcache 空間。

您確定 32 位版本不只是在 64 位 Windows 上運行而無需修改嗎? 大多數事情都可以。

如果失敗了,您是否真的嘗試過將其編譯為 64 位? 對一些 Google Groups 等進行簡短掃描,其中人們提出了同樣的問題,這表明這可能正是解決此問題的方法。 我認為您可能高估了 32 位和 64 位 Windows 之間的差異(至少就編譯本機應用程序而言)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM