2010-09-11 6 views
21

Bei der Arbeit haben wir vor kurzem begonnen, eine Anwendung für mich "Large Scale" zu entwickeln (wir entwickeln für das Potenzial, viele Millionen von schlägt einen Tag). Einer der Senior-Entwickler und der Systemadministrator haben Memcache auf dem Server eingerichtet.Unterschied zwischen Memcache, APC, XCache und anderen Alternativen, von denen ich noch nie gehört habe

Wie ich es verstehe, wird Memcache Abfrageergebnisse und bestimmte Tabellen im Speicher für X Zeit halten und alles gut halten.

Ein Nachteil von Memcache scheint es ist, dass ich es einfach nicht für das Leben von mir schaffen kann, es auf meiner lokalen Entwicklungsumgebung einzurichten. Ich habe ein paar verschiedene Anleitungen darüber gelernt, wie man es selbst kompiliert. Die meisten, wenn nicht alle Schritte scheinen richtig zu arbeiten, aber diesen Fehler auf PHPLoad erhalten:

[11-Sep-2010 16:02:30] PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0 

nicht die primäre Frage, aber incedentally, wenn Sie sind in der Lage Memcache für MAMP 1.9 auf Snow Leopard zu kompilieren, bitte lass mich den Trick wissen.

Meine primäre Frage ist, was die Unterschiede zwischen den verschiedenen Web-Caching-Technologien sind. Ich habe erwähnt, Memcache, APC und Xcache (hier: Cache results of a mysql query manually to a txt file), aber kenne nicht die Vor- und Nachteile und Unterschiede zwischen den beiden.

Meiner Meinung nach hat Memcache den Vorteil, derjenige zu sein, den der Projektentwickler und unser Systemadministrator gewählt haben. Es hat die Nachteil von absolut foobar zu versuchen und auf einem Mac einzurichten und zu kompilieren. : - ^)

Jeder, den ich gerne von jedem hören würde, der die Vor- und Nachteile jeder (oder sogar einer) der anderen Cachine-Technologien aufzählen kann. Wo werden sie am besten eingesetzt, wie werden sie am besten genutzt? Und so weiter.

Es ist alles nützliche Informationen, die ich denke.

Vielen Dank für Ihre Zeit zur Erweiterung meines Wissens. - Alex.

Antwort

31

Zuerst eine Liste von opcode cachers for php.

Zweites Memcache/MemcacheD ist kein Opcode Cacher. Es ist ein verteiltes Speicher-Caching-System. Es verbessert nicht die Geschwindigkeit/Leistung Ihres PHP-Codes. Es kann nur zum Speichern von Daten verwendet werden.

APC, EAccelerator, XCache und die anderen sind nicht verteilt, dh Sie können nur Daten auf dem lokalen Webserver speichern. All dies sind jedoch Opcode-Caches und können die Performance Ihrer PHP-App verbessern. Die meisten, außer EAccelerator (in der aktuellen Version) können auch Daten speichern.

Ich wähle in der Regel APC für den Opcode-Cacher (Es wird angeblich in den Kern von PHP 6 aufgenommen werden). Wenn ich aber auch mehr als einen Webserver für die Seite habe, werde ich auch MemcacheD nutzen.


Edit 1 Ich bin damit einverstanden, es zu Setup APC, Memcache auf MAMP sehr ärgerlich ist. Es gibt jedoch Tutorials, die sich mit solchen befassen.


Edit 2 Auch in Bezug auf die besten Opcode Cacher für Ihre Anwendung hängt wirklich davon ab, welche Server Sie verwenden. Einige funktionieren auf einigen Systemen besser.Es hängt auch von der Größe und dem Umfang Ihrer App ab, wie die Caches funktionieren.


bearbeiten 3 Sehr interessant article here über die Leistung von einigen verschiedenen cachers vergleichen. (Dieser Artikel scheint im Jahr 2006 geschrieben worden zu sein und sollte nicht wirklich für die aktuelle Referenz verwendet werden)

+0

Vielen Dank! Das hilft wirklich, es für mich in Ordnung zu bringen :) –

1

APC ist ein Opcode-Cache. Es speichert geparsten PHP-Code, so dass jedes Mal, wenn Ihre PHP-Dateien nicht analysiert werden müssen.

Memcache ist ein Datencache. Es speichert Daten als Schlüsselwertpaar.

Verwandte Themen