Kann ich APC UND memcached auf demselben Server verwenden?

7

Ich verwende Memcache zum Cachen von Objekten, möchte aber zusätzlich einen Opcode-Beschleuniger wie APC hinzufügen. Da beide Cachespeicher beinhalten, bin ich nicht sicher, ob sie "auf die Zehenspitzen treten", d. H. Ich bin nicht sicher, ob Memcache bereits ein OP-Code-Beschleuniger ist.

Kann jemand klären? Ich würde sie gerne beide für verschiedene Dinge gebrauchen. Memcache zum Cachen meiner Objekte und APC zur Code-Beschleunigung

    
Stick it to THE MAN 20.12.2009, 08:27
quelle

2 Antworten

4

Ja, Sie können beide gleichzeitig verwenden.

    
nickf 20.12.2009, 08:30
quelle
19

Memcache ist mehr wie ein verteilter Objekt-Cache im Gegensatz zu etwas wie APC oder XCache, das PHP-Bytecode im Speicher speichert, so dass Sie es nicht jedes Mal analysieren müssen. Ihre Hauptziele sind anders.

Wenn Sie beispielsweise eine sehr rechenintensive Datenbankabfrage hatten, die häufig angefordert wurde, können Sie das resultierende Objekt in memcache zwischenspeichern und dann darauf verweisen, anstatt diese Abfrage ständig erneut auszuführen.

APC & amp; XCache hat ähnliche Objekt-Caching-Funktionen, aber Sie sind auf den Host-Rechner beschränkt. Was ist, wenn Sie möchten, dass 10 verschiedene Server Zugriff auf dieses eine Objekt haben, ohne die Abfrage für jeden Server erneut durchführen zu müssen? Sie würden sie einfach auf Ihren Memcache-Server verweisen und Sie gehen. Sie erhalten immer noch einen Vorteil, wenn Sie nur einen einzelnen Server haben, da die Verwendung von Memcache Ihnen helfen wird, in Zukunft zu skalieren, wenn Sie mehr Felder verzweigen müssen.

Die Hauptsache ist, wenn Sie glauben, dass Ihre App skaliert werden muss. Memcache hat mehr Overhead, da Sie für den Zugriff auf eine TCP-Verbindung arbeiten müssen, im Gegensatz zu einem Funktionsaufruf für gemeinsame APC / Xcache-Objekte.

Memcache hat jedoch die folgenden Vorteile:

  • Schneller als die Festplatte oder erneut ablaufende Abfrage.
  • Skaliert auf mehrere Server.
  • Funktioniert mit vielen verschiedenen Sprachen, Ihre Objekte sind nicht nur in PHP + APC / Xcache gesperrt.
  • Alle Prozesse / Sprachen haben Zugriff auf dieselben Objekte, so dass Sie sich keine Sorgen machen müssen, wenn Ihre untergeordneten PHP-Prozesse einen leeren Objektcache haben oder nicht. Wenn Sie PHP-FPM verwenden, ist das vielleicht nicht so wichtig.

In den meisten Fällen würde ich empfehlen, Ihre Objekte in Memcache zwischenzuspeichern, da es nicht viel schwieriger ist & amp; ist flexibler für die Zukunft.

Beachten Sie, dass dies in Bezug auf das Zwischenspeichern von Objekten nur ist. Memcache hat NICHT irgendwelche Bytecode- oder PHP-Beschleunigungsfunktionen, weshalb ich es Seite an Seite mit APC oder Xcache ausführen würde

    
Klinky 20.12.2009 08:38
quelle

Tags und Links