Kann ich Memcached in einer Windows (x64) 64-Bit-Umgebung zum Laufen bringen?


87

Weiß jemand , IF , WENN oder WIE kann ich mich Memcached auf einem Windows 64 - Bit - Umgebung ausgeführt werden ?

Ich richte eine neue Hosting-Lösung ein und würde es vorziehen, ein 64-Bit-Betriebssystem auszuführen. Da es sich um eine ASP.Net MVC-Lösung mit SQL Server DB handelt, wird das Betriebssystem entweder Windows Server 2003 oder (hoffentlich!) 2008 sein.

Ich weiß, dass dies zu einer Debatte über 32-Bit gegenüber 64-Bit auf Servern führen könnte, aber sagen wir einfach, dass ich 64-Bit bevorzuge und dass ich einige sehr gute Gründe habe.

Bisher habe ich eine Reihe von Optionen ausprobiert und fand etwas von Hilfe im Zusammenhang mit diesem Aufstehen auf einem 32 - Bit - Maschine (und es gelang ihm wie ich hinzufügen möchte), aber da die ursprüngliche Windows - Port Win32 spezifisch ist, wird dies kaum zu Hilfe gehen bei der Installation als Dienst auf x64. Es hat auch eine Abhängigkeit vom Libevent, für das ich nur eine Win32-kompilierte Version bekommen kann.

Ich vermute, dass es nicht funktionieren würde, all dies einfach in C ++ zu laden und auf "Kompilieren" (für 64-Bit) zu klicken, nicht zuletzt wegen der komplizierten Unterschiede in den 32- und 64-Bit-Architekturen, aber ich frage mich, ob jemand daran arbeitet, dies zu erreichen der Boden? Leider liegt mein Fachwissen nur im verwalteten Code (C #), sonst würde ich versuchen, dies auf mich zu nehmen, aber ich kann nicht glauben, dass ich der einzige bin, der versucht, Memcached auf einem 64-Bit-Windows-Server zum Laufen zu bringen . ..am ich?


Aktualisieren

Ja, ich fürchte, ich suche immer noch nach einer Antwort darauf - alle meine Bemühungen (mit meinen erbärmlichen C ++ - Fähigkeiten), einen stabilen Build zu erstellen, sind fehlgeschlagen. Ich habe einen Server und 3 VMs zerstört, die ich gerade ausprobiert habe Wenden Sie sich an die echten Experten. Plant jemand, dies auf 64bit zu portieren? Oder schlagen Sie wirklich vor, stattdessen MS Velocity zu verwenden? Ich schaudere bei dem Gedanken.


Update: @Lars - Ich verwende Enyim tatsächlich - es ist sehr gut, aber Sie beziehen sich eher auf einen Client als auf den Serverteil.

@DannySmurf - Ich konnte es nur als Dienst auf einem 32-Bit-Betriebssystem installieren. Das 64-Bit-Betriebssystem lehnt die Installation dieses Win32-Dienstes ab. Natürlich funktioniert viel Win32-Code nahtlos in der x64-Architektur, daher können Sie 32-Bit-Apps (wie z. B. Office) oder Spiele unter Vista / XP 64 usw. ausführen, aber dies wird nicht direkt übersetzt, wenn es um Dienste geht. Ich bin kein Experte, ich vermute, dass es mit den Synchronisierungen oder Ereignissen zu tun hat, die Dienste abonnieren müssen, und ich vermute, dass 64 und 32 nicht gut spielen. Ich bin froh, dass ich diesbezüglich korrigiert werde, aber um Ihre Frage zu beantworten - ja, ich habe es versucht.

@OJ - vielen Dank für die direkte Antwort. Das dachte ich mir, war mir aber nicht sicher, ob jemand andere Vorschläge hatte oder diesen Weg bereits gegangen war. Wenn StackOverflow LIVE ist, werden möglicherweise mehr Leute antworten und mich wissen lassen, ob dies untersucht wird, und obwohl ich versuchen kann, es selbst zu kompilieren, kann ich (mit meinem C ++ - Erfahrungslevel) einfach nicht "vertrauen" würde "Enterprise Level" -Zuverlässigkeit in einer solch entscheidenden Komponente großer skalierbarer Lösungen bieten. Ich denke, es würde eher eine gebildete Intervention als meinen nicht sanitären experimentellen Ansatz erfordern, bevor ich zuversichtlich sein könnte. Ein kleines Versehen meinerseits könnte die Website zum Absturz bringen. Na ja ... bis zum nächsten Mal.


Welcher Fehler tritt auf, wenn versucht wird, den Dienst zu registrieren? Ich habe mehrere Dienste installiert, die in 32-Bit- und 64-Bit-Umgebungen entwickelt wurden, und hatte nie Probleme. Versuchen Sie, eine Befehlszeile in 32-Bit zu öffnen und den Dienst mit dem Programm sc.exe
lsalamon

Antworten:


52

North Scale Labs haben einen Build von memcached 1.4.4 für Windows x64 veröffentlicht:

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

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

UPDATE: Sie haben kürzlich Memcached Server veröffentlicht - immer noch KOSTENLOS, aber erweiterte Distribution mit Clustering, webbasierter Benutzeroberfläche für Administratoren / Statistiken usw. (Ich bin in keiner Weise mit ihnen verwandt). Schauen Sie unter http://northscale.com/ nach. products / memcached.html und herunterladen unter: http://www.northscale.com/download.php?a=d

UPDATE 2: NorthScale Memcached ist nicht mehr als eigenständiger Download verfügbar. Jetzt haben sie es zu einem Teil ihres kommerziellen No-SQL-DB-Angebots namens Membase gemacht. Es kann so konfiguriert werden, dass es im Nur-Memcached-Modus (dh ohne Persistenz) ausgeführt wird, und es gibt auch eine 100% kostenlose Version. Überprüfen Sie es hier: http://www.membase.org/downloads

UPDATE 3: MemBase hat mit CouchDB geschlafen und ein Hybridproduktangebot namens CouchBase erstellt. Sie bieten weiterhin eine kostenlose "Community" -Version unter http://www.couchbase.com/download an


3
Ich habe keinen Repräsentanten zum Bearbeiten, aber der erste Link hier ist derzeit nicht korrekt. Zwischen 64 und Bit wird ein Bindestrich benötigt: blog.northscale.com/northscale-blog/2009/12/…
Maggie

22
Download-Link funktioniert immer noch: s3.amazonaws.com/downloads.northscale.com/…
IEnumerator

Wie kann ich den Memcached Server über die Befehlszeile für Windows konfigurieren? Ich habe versucht, codeproject.com/Articles/96698/… Link. Kann aber nicht konfigurieren.
Naren

25

Damit die Leute wissen, dass sich die 32-Bit- und 64-Bit-Version, wie sie von den guten Leuten aus membase / couchbase / was auch immer noch verfügbar ist, erstellt wurde, hat sich die Blog-URL jedoch geändert:

32-Bit-Binärdatei von memcached 1.4.4 als Windows-Dienst:

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

64-Bit-Binärdatei von memcached 1.4.4 als Windows-Dienst:

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

Die 64-Bit-Version hat die falsche Betriebszeit.

Vielleicht möchten Sie stattdessen diese Binärdatei von 1.4.2:

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

Die in MemCacheDManager enthaltene 32-Bit-Version unterstützt auch die Ausführung unter Windows 2000 (kein 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

So entpacken Sie die MSI:

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


Couchbase scheint jetzt einen anderen Ansatz zu verfolgen couchbase.com/memcached
Mike Gifford

6

Memcached 1.4.5 Binary für Win x64 finden Sie hier: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

Eine andere Möglichkeit wäre, Couchbase Server 1.8.0 x64 von hier aus zu installieren: http://www.couchbase.com/download , das mitgelieferte Memcached scheint Version 1.7.1.1 zu sein (klingt wie eine interne Version, ich kann nicht sagen, welche ist der echte)

Für das Ausführen von memcached as a service reicht dieses Tutorial möglicherweise aus:

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


6

Aktuelle Binärdateien

NorthScale hat wirklich alte Versionen (die neueste ist 1.4.5 aus dem April 2010), aber es gibt einen Mann, der 64-Bit-Memcached-Binärdateien für Windows anbietet, die mit Cygwin kompiliert wurden (aber nicht installiert werden müssen), in seinem GitHub-Repository-Github. com / nono303 / memcached .

Zum Beispiel sind die Binärdateien der zuletzt veröffentlichten Version (zum Zeitpunkt des Schreibens dieser Antwort) 1.5.16 hier . Es gibt sowohl 32- als auch 64-Bit-Versionen.

Als Windows-Dienst zwischengespeichert

Wenn Sie es als Windows-Dienst installieren möchten, können Sie beispielsweise den Open-Source -Manager für nicht saugende Dienste verwenden :

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

Einzelheiten finden Sie in der Dokumentation .


3

Ich persönlich bin der Meinung, dass Sie die Anwendung mit einem 64-Bit-Compiler (offensichtlich auf einem 64-Bit-Computer) neu kompilieren müssen, um Memcached auf einer 64-Bit-Plattform optimal nutzen zu können. Dies ist je nach Code möglicherweise keine leichte Aufgabe. Wenn es unter Berücksichtigung der 64-Bit-Portabilität geschrieben wurde, kann es sich um eine einfache Neukompilierung handeln. Wenn dies nicht der Fall ist, könnten Sie einige Patches durchführen, bevor Sie es erstellen. Dann müssen Sie überprüfen, ob Sie nichts kaputt gemacht haben!

Ich glaube nicht, dass Sie die Unterschiede zwischen 32 und 64 Bit überhaupt überschätzen. Ein häufiger Fehler ist die Annahme, dass der Job eine einfache Neukompilierung ist, obwohl dies nicht der Fall ist. Es gibt mehr Portabilitätsprobleme, als die meisten Menschen erkennen. Nur weil die Anwendung erstellt wird und Sie am Ende eine Binärdatei haben, bedeutet dies nicht, dass sich die Binärdatei so verhält, wie sie sollte. Besonders wenn es mit anderem 32-Bit-Code interagieren kann.

Trotzdem könnte es sich lohnen, es auszuprobieren!

Viel Glück. Prost!


@Lars: Ich empfehle, die Frage zu lesen, bevor Sie eine Antwort versuchen.

@John Sibly & @DannySmurf: Angesichts der Natur von Memcached und dessen Zielerreichung möchten Sie sicherlich keine 32-Bit-Version auf einem 64-Bit-Computer ausführen? Wenn Sie einen 64-Bit-fähigen Computer hätten, wäre es sinnvoll, eine 64-Bit-Version auszuführen, um die Funktionen der Hardware optimal zu nutzen.


3

Ich habe ein memcached-1.2.1 für win32, das ursprünglich von hier heruntergeladen wurde: http://jehiah.cz/projects/memcached-win32/ (aber jetzt ist es aus irgendeinem Grund ein defekter Link).

Auf diese Weise konnte ich memcached für Win32 unter Windows Server 2008 R2, 64-Bit, ausführen. memcached.exe -> Eigenschaften -> Kompatibilität -> Führen Sie dieses Programm im Kompatibilitätsmodus für Windows XP (SP 3) aus . Beachten Sie, dass der Benutzer Uriel Katz in dieser Diskussion erwähnt, dass diese Methode auf 2 GB Speicher beschränkt ist.


2

Ich habe gerade nach memcached auf einem 64-Bit-Windows-System gesucht und dies gefunden. Bisher gibt es keine zwischengespeicherte Win64-Version. Aber ich habe gerade die memcached.exe mit den entsprechenden Befehlen über cmd gestartet und sie läuft einwandfrei. Ich verwende Windows Vista 64bit und weiß nicht, ob es Unterschiede zwischen Vista und den Serverversionen gibt.

Mit freundlichen Grüßen Fleshgrinder


Vielen Dank dafür - das Starten vom cmd war nicht das Problem - die Installation als Dienst war das Problem. Grüße, Rob G
RobertTheGrey

1

Alter , Codeplex ist dein Freund -> schau dir diesen Port an. Früher gab es eine 64-Bit-Version, aber Sie können entweder die neueste Version herunterladen und für 64-Bit kompilieren (ziemlich einfach) oder die vorherigen Versionen überprüfen.


1
Hallo Pure.Krome, danke für die Info, aber ich habe diese Seite gesehen und noch nie eine 64-Bit-Serverversion gesehen. Und nein - gemäß der obigen Antwort von OJ können Sie nicht einfach auf 64-Bit kompilieren, wenn der Code nicht so geschrieben wurde, und die Arbeit mit dem Speicher ist immer ein schlechter Ort, um diese Theorie zu testen ...
RobertTheGrey

hmm. ahh -> das x64-Bit war die BETA-Version, daher wurde es durch einige neuere Updates ersetzt. es wurde hier gefunden: codeplex.com/memcachedproviders/Release/…
Pure.Krome

1

Die 32-Bit-Version läuft auf 64-Bit über WOW64, aber der Prozess ist immer noch auf 2 GB beschränkt. Mit einer 64-Bit-Version können Sie darüber hinaus auf mehr als einen einzelnen Computer zugreifen.


0

Sind Sie sicher, dass die 32-Bit-Version nicht nur unter 64-Bit-Windows ohne Änderungen ausgeführt werden kann? Die meisten Dinge tun es.

Andernfalls haben Sie tatsächlich versucht, es nur für 64-Bit zu kompilieren? Ein kurzer Scan einiger Google Groups usw., in denen dieselben Fragen gestellt wurden, legt nahe, dass dies möglicherweise genau die Lösung dafür ist. Ich denke, Sie überschätzen wahrscheinlich den Unterschied zwischen 32-Bit- und 64-Bit-Windows (zumindest was das Kompilieren einer nativen Anwendung betrifft).


0

Zu Ihrer Information, ich konnte die 64-Bit-Version (von hier http://labs.northscale.com/memcached-packages/ ) nicht als Dienst installieren, bis ich memcached als Administrator ausgeführt habe.

Ich ging einfach zu den Eigenschaften der ausführbaren Datei und dann zur Registerkarte Kompatibilität und überprüfte "Dieses Programm als Administrator ausführen" (Es gibt eine Menge anderer Möglichkeiten, dies zu tun, aber es schien am einfachsten zu sein).

Dann konnte ich endlich erfolgreich ausführen: memcached -d install

Vergessen Sie nicht, den Dienst auch nach der Installation zu starten :)


0

Sie können jederzeit mehrere Instanzen von 32-Bit-Memcached-Prozessen auf einer Box ausführen, sodass dieser Computer insgesamt> 2 GB Memcache-Speicherplatz bereitstellen kann.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.