Webhosting

Redis und Memcached (Objekt-Cache)

Definition

Redis und Memcached sind In-Memory-Speicherserver, die WordPress als persistenten Objekt-Cache nutzt. Sie bewahren die Ergebnisse von Datenbankabfragen und andere berechnete Daten über mehrere Seitenaufrufe hinweg auf, entlasten so MySQL oder MariaDB und beschleunigen vor allem dynamische Seiten, den Admin-Bereich und Onlineshops.

Redis und Memcached (Objekt-Cache), Webhosting

WordPress hat bereits einen Objekt-Cache: Während eine Seite geladen wird, hält es die aus der Datenbank gelesenen Optionen, Beiträge und Metadaten im Speicher, um sie nicht erneut abzufragen. Die WordPress-Dokumentation stellt aber klar: Standardmäßig ist dieser Cache nicht persistent. Am Ende der Anfrage ist alles weg, und die nächste Seite stellt dieselben Abfragen erneut an MySQL oder MariaDB. Redis und Memcached machen diesen Cache persistent.

So funktioniert der persistente Objekt-Cache

Der Trick steckt in einer einzigen Datei: object-cache.php im Ordner wp-content. Es handelt sich um ein „Drop-in“, das WordPress beim Start automatisch lädt und das den Standard-Cache ersetzt. Objekt-Cache-Plugins installieren diese Datei, die die Funktionen wp_cache_get() und wp_cache_set() an einen Redis- oder Memcached-Server umleitet.

Schema des Wegs eines Datensatzes mit persistentem Objekt-Cache: WordPress fragt einen Wert an, etwa eine Option oder einen Beitrag, die Datei object-cache.php reicht die Anfrage an den Cache weiter, Redis oder Memcached liefert den Wert aus dem Arbeitsspeicher, wenn er dort liegt, andernfalls fragt WordPress MySQL oder MariaDB ab und legt das Ergebnis für die folgenden Anfragen im Cache ab.
Ein Wert, der in Redis oder Memcached liegt, erspart eine SQL-Abfrage, und zwar für alle folgenden Seiten.

Nicht zu verwechseln mit der Konstante WP_CACHE, die ein anderes Drop-in aktiviert, advanced-cache.php, das von Seiten-Cache-Plugins genutzt wird. Der Seiten-Cache erspart die PHP-Ausführung für ganze Seiten; der Objekt-Cache beschleunigt die Seiten, die dynamisch bleiben müssen: Admin-Bereich, Warenkorb, Kundenkonto, Suche. OPcache wiederum setzt auf einer ganz anderen Ebene an, bei der Kompilierung des PHP-Codes.

Seit WordPress 6.1 enthält das Werkzeug „Website-Zustand“ einen Test, der anzeigt, ob sich ein persistenter Objekt-Cache lohnen würde, abhängig von der Zahl der Optionen, Beiträge oder Benutzer der Website.

Redis oder Memcached?

  • Memcached beschreibt sich als verteiltes, leistungsstarkes In-Memory-Caching-System für Objekte. Es ist ein einfacher Key-Value-Speicher, der standardmäßig die am längsten nicht genutzten Einträge verdrängt (LRU); seine Server wissen nichts voneinander, ein zusätzlicher Server bringt einfach mehr Speicher.
  • Redis ist ein In-Memory-Speicher für Datenstrukturen, der als Cache, Datenbank oder Message Broker dienen kann. Er kann seine Daten auf die Festplatte schreiben (RDB-Snapshots, AOF-Protokoll) oder darauf verzichten, was seine Dokumentation als üblichen Einsatz für einen Cache beschreibt.

Für WordPress taugen beide. Redis wird wegen seiner zusätzlichen Funktionen oft bevorzugt, doch der Gewinn hängt vor allem davon ab, wie nah Cache-Server und Website beieinander liegen.

Video: „Was ist eine IN-MEMORY Datenbank ? Redis einfach & praktikabel erklärt“ (Raspberry Pi Cloud)

Für WordPress

  • Prüfe die Verfügbarkeit: Beim Cloud-Hosting, auf einem VPS oder bei einem Tarif, der es enthält, startet der Hoster oder du selbst den Dienst; die passende PHP-Erweiterung (redis oder memcached) muss installiert sein.
  • Installiere ein Objekt-Cache-Plugin, zum Beispiel Redis Object Cache, das PhpRedis, Predis und Relay unterstützt und WP-CLI-Befehle wie wp redis status mitbringt. Auch das Plugin LiteSpeed Cache kann Redis und Memcached nutzen, auf jedem Webserver.
  • Ein Präfix pro Website, wenn sich mehrere WordPress-Installationen denselben Redis teilen, sonst vermischen sich ihre Daten.
  • Nicht im Internet erreichbar machen: Redis und Memcached sollten nur lokal oder in einem privaten Netz lauschen, mit Authentifizierung, wo sie verfügbar ist.

Nach einer Änderung der Einstellungen leert WP Masquerade die Seiten-Caches, die es erkennt; die Seite Kompatibilität mit Hostern und Caches nennt sie.

Häufige Fehler

Einen Objekt-Cache auf einer kleinen Website aktivieren, ohne die Wirkung zu messen, vergessen, dass ein voller oder gestoppter Cache Verzögerungen verursachen kann, oder zwei Plugins installieren, die sich um die Datei object-cache.php streiten. Verhält sich die Website nach einem Umzug seltsam, leere den Objekt-Cache: Er kann noch alte Adressen oder alte Einstellungen enthalten.

Weiterlesen

  • Seite Kompatibel mit Hostern und Caches

Quellen

  1. WordPress Developer Resources: WP_Object_Cache (externer Link, öffnet in neuem Tab)
  2. Make WordPress Core: New cache Site Health checks in WordPress 6.1 (externer Link, öffnet in neuem Tab)
  3. Redis Docs: Redis persistence (externer Link, öffnet in neuem Tab)
  4. Memcached Documentation (externer Link, öffnet in neuem Tab)

Alle Definitionen

WordPress-Sicherheit ohne Lärm

Eine E-Mail, wenn es wichtig ist: neu beobachtete Angriffe, Updates des Plugins und praktische Anleitungen. Kein Spam, Abmeldung mit einem Klick.

Starte kostenlos und wechsle zu Pro, wenn du so weit bist

Die kostenlose Version versteckt WordPress bereits und verschiebt die Anmeldeseite. Pro ergänzt Aliasse, Zwei-Faktor-Authentifizierung und Überwachung.