Wähle das passende Cache-Backend
Normalerweise speichert TYPO3 zwischengespeicherte Informationen in der Datenbank (in Tabellen wie „cache_pages“ oder „cache_rootline“). Aber die Verwendung der Datenbank als Cache kann zu einer langsamen Seitendarstellung führen. Oftmals wird die Datenbank auf einem anderen Server gespeichert, was zu einer erhöhten Netzwerklatenz führt, die die Gesamtantwortzeit des Systems verlängert. Wenn der Datenbankdienst auf demselben Server läuft, kann die Datenbank viele CPU-Ressourcen verbrauchen. Eine relationale Datenbank wie MySQL ist nicht das ideale Werkzeug für das Caching, aber alle Hoster bieten eine für TYPO3 geeignete Datenbank an, so dass diese Option immer verfügbar ist.
In fortgeschritteneren Konfigurationen kann TYPO3 so angepasst werden, dass ein anderes Cache-Backend verwendet wird. Wir werden die verschiedenen Cache-Backends in einem weiteren Kapitel hervorheben.
Ein Cache-Backend ist wie ein Adapter, der dem System mitteilt, wo die zwischengespeicherten Informationen gespeichert werden sollen. TYPO3 bietet Adapter für Datenbanken, Dateisysteme, reine Arbeitsspeicher und verteilte Backends out-of-the-box. Als Faustregel gilt, dass die dringendsten Caches für die Frontend-Ausgabe in einen speicherbasierten Cache wie Redis oder Memcached gelegt werden, wodurch unsere Websites um 30% schneller geladen werden. Dazu gehören „pages“ für die Ausgabe von Seiten im Cache, „pagesection“ für TypoScript-Anweisungen und „rootline“ für hierarchische Informationen von Seiten (allesamt die „Frontend-Caches“, die ein Redakteur im TYPO3-Backend löschen kann). Aufgrund der Geschwindigkeitsverbesserung liefern wir alle unsere TYPO3-Projekte, die in unserer TYPO3-unterstützten Umgebung gehostet werden, standardmäßig mit einem konfigurierten Redis-Dienst aus. Eine vollständig zwischengespeicherte Seite in TYPO3, die mit Redis als Cache-Backend konfiguriert ist, benötigt nur eine Datenbankanfrage. Die Datenbank kann dann ausschließlich (und damit effizienter) für das Content-Management und die Datenabfrage genutzt werden.
Die Verwendung des richtigen Cache-Backends ist entscheidend, aber auch stark von der verwendeten Hosting-Infrastruktur abhängig. Wenn sich der Datenbankserver auf einem entfernten Server befindet, aber kein Speicher-Cache verfügbar ist, kann es möglich sein, die Caches auf dem Dateisystem zu speichern — wenn der Server mit einer schnellen SSD-Festplatte läuft. Aber: Von der Verwendung eines dateibasierten Cache-Backends wird bei verteilten Systemen, die Dateien über NFS austauschen, dringend abgeraten. Es gibt also im Allgemeinen nicht den besten Weg für alle da draußen — aber es gibt einen speziellen besten Weg für dein Projekt!
Bevor Du den Einsatz von TYPO3 in einem Multi-Knoten-Server-Setup aus Performance-Gründen in Betracht ziehst, stelle sicher, dass Du die tatsächlichen Engpässe Deines Systems verstehst und den zugrunde liegenden Code oder die Konfiguration optimierst.
Wir empfehlen dringend, sich an den Hoster zu wenden und nach Redis- oder Memcache-Unterstützung für die TYPO3-Website zu fragen.