Zum Inhalt springen
EuroVPSEuroVPS

PHP-Caching verstehen: OPcache, Memcached und Redis

PHP betreibt einen sehr großen Anteil der dynamischen Websites. Umso wichtiger ist es, dass PHP-Entwickler beim Caching auf dem Stand sind: OPcache, Daten-Caches und Seiten-Caches.

Von Thomas

Aktualisiert am 22. Oktober 20264 Min. Lesezeit
Titelbild: PHP-Caching verstehen

Was ist PHP?

PHP ist eine Programmiersprache, mit der dynamische Inhalte auf einer Webseite erzeugt werden, etwa eine Liste von Datensätzen aus einer Datenbank, das Abrufen von Werbung oder die Anzeige eines Newsfeeds oder eines Twitter-Streams. Ein Weg, all das zu beschleunigen, ist PHP-Caching.

Was ist Caching?

Webseiten laden schneller, wenn Teile der Seite oder die ganze Seite im Speicher, in einer Datei auf dem Webserver oder im Content Delivery Network (CDN) abgelegt werden, statt bei jedem Aufruf dieser URL neu erzeugt zu werden. Das nennt man Caching. Es sorgt für ein besseres Nutzererlebnis, weil die Besucher nach einem Klick nicht so lange warten müssen, bis die nächste Seite geladen ist.

Sie können Inhalte wie Bilder, HTML und Daten cachen. Dasselbe Bild muss zum Beispiel nicht 10-mal für 10 verschiedene Personen abgerufen werden. Besser, es wird gecacht. Der Cache speichert die Webseite mit allen Daten bereits an ihrem Platz, etwa einer Liste von Namen.

Verwandter Artikel: Varnish Cache erklärt

Das Kochbuch des Programmierers

Nehmen Sie einen Datenbankaufruf. Es ergibt keinen Sinn, die Datenbank 100-mal für 100 Personen zu lesen, die alle dieselben Datensätze laden, also etwas, das für viele gleich ist, wie der Preis eines Artikels, den Sie auf der Startseite bewerben. Es ist effizienter, diesen Wert aus dem Cache zu holen.

Anwendungen können auch API-Antworten cachen. Über eine API funktioniert zum Beispiel die Werbung innerhalb einer Seite. Das ist allerdings ein Gegenbeispiel, denn eine Anzeige würden Sie nicht cachen: Der Werbetreibende zeigt verschiedenen Personen verschiedene Anzeigen.

Caching passt also nicht in jeder Situation. Insbesondere eignet es sich nicht für Daten, die sich häufig ändern oder für jeden Nutzer einzigartig sind.

PHP bringt einen wichtigen Cache von Haus aus mit: OPcache, der mit PHP ausgeliefert wird. Jedes Mal, wenn ein PHP-Skript läuft, kompiliert PHP es zunächst zu Bytecode. OPcache hält diesen kompilierten Bytecode im gemeinsamen Speicher, sodass Skripte nicht bei jeder Anfrage neu kompiliert werden. Stellen Sie sicher, dass er aktiviert ist und sein Speicher groß genug für Ihren Code ist. Er ist in der Regel die günstigste PHP-Beschleunigung, die es gibt.

Für Ihre Daten hat PHP allerdings keinen eingebauten Cache. Dafür gibt es Open-Source-Frameworks und Erweiterungen, etwa Clients für Memcached und Redis, mit denen der Programmierer seinen Code so gestalten kann. Eine Client-Bibliothek prüft den Cache, bevor sie die Datenbank abfragt.

PHP-Caching und WordPress

WordPress hat eine Object-Cache-API, die von Memcached oder Redis bedient werden kann, und Page-Cache-Plugins wie W3 Total Cache oder WP Super Cache ergänzen das Caching ganzer Seiten. Das beschleunigt auch das Veröffentlichen von Inhalten in Ihrem CMS. Und jeder eigene WordPress-Code, den Sie schreiben, kann Caching nutzen, wenn Sie ein Framework hinzufügen.

Den Cache einstellen

Ein berechtigter Einwand: Wie kann ein Cache die letzten fünf Schlagzeilen kennen, ohne nachzusehen? Die Antwort: Er kennt sie nicht.

Caching wird über Größe und Zeit gesteuert. Sie könnten die Cache-Zeit also auf 5 Sekunden oder 5 Minuten setzen.

Wenn die Cache-Zeit abläuft, macht der PHP-Code den Weg zum Datenbankserver oder zur API, um zu prüfen, ob sich etwas geändert hat.

Caches sind auch durch ihre Größe begrenzt: Wenn ein Cache voll ist, werden die am längsten nicht genutzten Einträge entfernt, um Platz für neue zu schaffen.

Das Fazit

PHP betreibt einen sehr großen Anteil der dynamischen Websites.

OPcache, ein Daten-Cache und ein Seiten-Cache sind die drei Ebenen, die Sie richtig einstellen sollten. Wenn Sie Fragen haben, wenden Sie sich an unser Team.

Aus dem Blog-Archiv von EuroVPS, erstmals veröffentlicht am 10. August 2021.

Alle Notizen aus der Praxis