Ich habe diesen Artikel gelesen: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/ von damals. Ich möchte die beste verfügbare Caching-Engine erhalten, damit meine Anwendung wirklich schnell ist. Natürlich möchte ich nicht zu viel zwischenspeichern, aber ich möchte zumindest das Beste da draußen auswählen. In diesem Artikel heißt es, dass Memcached langsam und apc schnell ist. Warum wählen alle Memcached ?
http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels heißt hier "Verwenden Sie eine schnelle (aber begrenzte) wie Apc, Memcache ... und a "Langsam" wie File, Sqlite ... "Halten Sie es für eine gute Idee, Apc als schnelles und Memcache als langsames zu verwenden?
apc_store
. Opcode-Cache allein macht PHP einige Male schneller.apc_store()
ist nur ein zusätzlicher Bonus.Antworten:
Memcached ist ein verteiltes Caching-System, während APC nicht verteilt ist - und hauptsächlich ein Opcode-Cache.
Wenn (und nur wenn) Sie eine Webanwendung haben, die auf verschiedenen Webservern ausgeführt werden muss (Loadbalancing), müssen Sie Memcache für das verteilte Caching verwenden. Wenn nicht, bleiben Sie einfach bei APC und seinem Cache.
Sie sollten immer einen Opcode-Cache verwenden, bei dem es sich um APC handelt (auch APC wird in php6 iirc integriert, warum also nicht jetzt damit beginnen)?
Sie können / sollten beide für verschiedene Zwecke verwenden.
quelle
opcode
Cache?opcode
Cache kompiliert den einfachen PHP-Code in Maschinencode ("Opcode") und speichert ihn dann in der kompilierten Form für zukünftige Anforderungen (bis festgestellt wird, dass sich die ursprüngliche PHP-Datei geändert hat). Dies bedeutet, dass PHP diesen Kompilierungsschritt nicht bei jeder einzelnen Anforderung ausführen muss, was Zeit spart. Dies ist nur eine der Möglichkeiten, um (unter anderem) eine schnelle Website zu gewährleisten.Wird zwischengespeichert, wenn Sie den Status auf mehreren Webservern beibehalten müssen (wenn Sie einen Lastenausgleich haben und es wichtig ist, dass der Inhalt des Caches für alle Server gleich ist).
APC, wenn Sie nur Zugriff auf den Schnellspeicher benötigen, um auf einem (oder jedem) Server zu lesen (und zu schreiben).
Denken Sie daran, dass APC auch die Ausführungszeit Ihres Skripts kompilieren und beschleunigen kann. So könnten Sie beispielsweise APC verwenden, um die Ausführungsleistung zu erhöhen, während Sie memcached für die Cache-Speicherung verwenden.
quelle
Der Hauptvorteil von APC ist der Opcode-Cache. Da PHP 5.5 OpCache in seinen Kern integriert hat und APC für PHP 5.4 immer noch als Beta gekennzeichnet ist, ist dies keine offizielle Ankündigung, aber die Entwicklung von APC würde in naher Zukunft eingestellt.
Daher würde ich Ihnen empfehlen, Memcached zu wählen.
quelle
Ich verwende sowohl einen für die Geschwindigkeit als auch den anderen, um alle meine Server zu synchronisieren. Wenn Sie Memcache verwenden, beachten Sie bitte die offenen Ports, die Sie mit iptables blockieren müssen.
quelle
Hey Thomaschaaf, ich hoffe, dies ist kein spätes Tool für Sie, aber bitte beachten Sie, dass APC einige Probleme im Zusammenhang mit "Benutzer-Cache" hat. Um es kurz zu machen: Wenn Sie Zeitüberschreitungen für Cache-Einträge festlegen oder wenn Ihr Apache im internen APC-Code abstürzt (z. B. Zeitüberschreitung), können Probleme auftreten.
Ich habe hier einen Eintrag zu diesem Problem: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html , und Sie sollten auch http: //t3.dotgnu lesen . info / blog / php / user-cache-timebomb.html (von einem der APC-Entwickler, denke ich)
quelle
Ich benutze nur APC, da APC ein Code-Cache ist und sich wie ein Memcache verhält! Nur 1 Konfigurationsdatei anstelle von 2.
Und nur 1 Ort, um beide Cache zu überwachen .....
quelle
Es hängt davon ab, was Sie tun, aber für meine Drupal-Websites, die auf einem VPS ausgeführt werden, finde ich, dass APC großartig funktioniert! Wenn Sie CentOS 6 ausführen, ist es als leckeres Update verfügbar, das so einfach zu installieren ist und keine Konfiguration enthält, da die Standardeinstellungen angemessen sind. Ein Kinderspiel imho.
quelle