Leistung und Monitoring

Redis als Objekt-Cache einrichten

Geprüft am 10 Min. Lesezeit cache redis

Mit Redis können Sie Daten im Arbeitsspeicher halten, die die Anwendung wiederverwenden kann. Um davon zu profitieren, müssen Sie den Dienst im Hosting aktivieren und eine kompatible Anwendung verbinden. Das Einschalten von Redis führt nicht dazu, dass alle SQL-Abfragen automatisch zwischengespeichert werden.

Redis Cache ist nur ein Cache: Nach jedem Neustart beginnt er leer, und wenn er voll ist, verwirft er Schlüssel. Für Warteschlangen, Sitzungen oder andere Daten, die nicht verloren gehen dürfen, gibt es in den Tarifen Avanza, Max und Elastic das persistente Redis, das seine Daten auf der Festplatte speichert.

Nützlich kann er in Shops, Kursplattformen oder Administrationsbereichen mit wiederkehrender Aktivität sein. Eine Informationswebsite mit gutem Seiten-Cache bemerkt vielleicht keinen Unterschied. Die Erklärung zum Objekt-Cache von WordPress hilft Ihnen, beide Fälle zu unterscheiden.

Redis im Kundenbereich aktivieren

  1. Öffnen Sie das Hosting und wählen Sie Paketmanager.
  2. Schalten Sie auf der Karte Redis Cache den Schalter ein.
  3. Prüfen Sie den zugewiesenen Speicher und klicken Sie auf Redis Cache aktivieren.
  4. Warten Sie, bis das Panel die Aktivierung bestätigt. Öffnen Sie Verbindungsdaten, um die Werte einzusehen.

Paketmanager des Hostings mit der Karte Redis Cache

Alle Tarife enthalten Redis als Cache. Die konfigurierten Limits sind 16 MB bei Inicia, 32 MB bei Webmaster, 64 MB bei Avanza, 100 MB bei Max, 200 MB bei Elastic und 16 MB pro Konto im Multi-Account-Hosting. Prüfen Sie den Speicher, den Ihr Dienst anzeigt; nach einem Tarifwechsel kann er als noch nicht angewendet erscheinen.

Dieses Limit gilt für die Daten von Redis, nicht für den gesamten Arbeitsspeicher des Prozesses. Mehrere Websites eines Kontos teilen sich diese Kapazität. Es gibt keine allgemein optimale Größe: Sie hängt davon ab, wie viel gespeichert und wiederverwendet wird.

Verbindungsdaten

Feld Wert
Typ Unix-Socket
Host oder Pfad /tmp/redis.sock
Port 0

Bereich mit den Verbindungsdaten von Redis Cache

Der Pfad ist der, den Ihr Konto in seiner isolierten Umgebung sieht. Wenn ein anderes Konto denselben Pfad anzeigt, teilt es deshalb nicht Ihre Instanz. Die Anwendung muss in diesem Hosting laufen; es ist keine Adresse, mit der Sie sich von Ihrem Computer aus verbinden.

WordPress und WooCommerce mit LiteSpeed Cache

Verwenden Sie eine einzige Objekt-Cache-Integration pro Installation. Wenn ein anderes Plugin wp-content/object-cache.php verwaltet, deaktivieren Sie zuerst dessen Integration nach seinen Anweisungen.

  1. Installieren und aktivieren Sie LiteSpeed Cache.
  2. Öffnen Sie LiteSpeed Cache > Cache > Object.
  3. Wählen Sie Redis als Methode und tragen Sie Host und Port aus der Tabelle oben ein.
  4. Vergeben Sie eine Redis Database ID, die sich von der der anderen Websites des Kontos unterscheidet.
  5. Aktivieren Sie Object Cache, speichern Sie und prüfen Sie den Verbindungsstatus. Wenn die Redis-Erweiterung fehlt, aktivieren Sie sie in der PHP-Version, die diese Website verwendet, bevor Sie fortfahren.

Prüfen Sie Frontend, Administrationsbereich und das Aktualisieren von Inhalten. Der Objekt-Cache ersetzt nicht die Seiten-Cache-Ausnahmen für Warenkorb, Kasse und private Bereiche.

WordPress mit Redis Object Cache

Alternativ können Sie Redis Object Cache installieren. Bevor Sie dessen Objekt-Cache aktivieren, sichern Sie eine Kopie von wp-config.php und fügen Sie diese Zeilen ein, bevor WordPress seine Konfiguration lädt. Ändern Sie vorhandene Konstanten, wenn sie bereits definiert sind; legen Sie sie nicht doppelt an.

define('WP_REDIS_SCHEME', 'unix');
define('WP_REDIS_PATH', '/tmp/redis.sock');
define('WP_REDIS_PORT', 0);
define('WP_REDIS_DATABASE', 1);

Die 1 ist ein Beispiel: Wählen Sie eine in diesem Konto freie Kennung. Öffnen Sie die Einstellungen des Plugins, prüfen Sie die Verbindung und aktivieren Sie den Objekt-Cache. Prüfen Sie seine Diagnose, wenn es die Integrationsdatei nicht anlegen kann oder eine bereits installierte erkennt. Für besondere Konfigurationen lesen Sie die Optionen des Plugins.

PrestaShop und andere Anwendungen

Das Modul muss mit Ihrer Version der Anwendung kompatibel sein und eine Verbindung über Unix-Socket unterstützen. Es reicht nicht, dass es Redis-Unterstützung verspricht, wenn es nur Host und TCP-Port akzeptiert. Klären Sie diese Anforderungen vor dem Kauf eines Moduls mit dessen Entwickler.

Tragen Sie Pfad und Port aus dieser Anleitung ein, trennen Sie die Daten jeder Website und prüfen Sie das Ergebnis mit der Diagnose des Moduls. Passen Sie keine Anleitung für entferntes Redis an, indem Sie einen Port des Servers öffnen.

Laravel

Wenn die Erweiterung PhpRedis für das PHP der Anwendung verfügbar ist, konfigurieren Sie die Verbindung in .env:

REDIS_CLIENT=phpredis
REDIS_HOST=/tmp/redis.sock
REDIS_PORT=0

Behalten Sie die Schlüssel in config/database.php bei, die diese Werte lesen. Um Redis als Cache-Speicher zu nutzen, müssen Sie es außerdem in config/cache.php auswählen: Aktuelle Projekte lesen meist CACHE_STORE, ältere Projekte verwenden möglicherweise CACHE_DRIVER. Prüfen Sie, welche Variable Ihr Projekt liest; nur die Verbindung zu ändern ändert nicht den Speicher.

Weisen Sie der Cache-Verbindung einen eigenen Redis-Index zu, zum Beispiel über REDIS_CACHE_DB, wenn Ihre Konfiguration diese Variable nutzt, sowie ein projektspezifisches Präfix. Aktualisieren Sie den Konfigurations-Cache mit Ihrem Deployment-Ablauf und testen Sie aus der Anwendung heraus, einen temporären Testschlüssel zu speichern, zu lesen und zu entfernen.

Sitzungen und Warteschlangen gehören nicht in diese Instanz: Redis Cache speichert nichts auf der Festplatte und verwirft Schlüssel, wenn er voll ist, sodass eine Sitzung oder ein ausstehender Job ohne Vorwarnung verschwinden könnte. Speichern Sie sie in der Datenbank, was seit Laravel 11 die Standardkonfiguration ist; in älteren Projekten legen Sie zuvor ihre Tabellen mit php artisan session:table und php artisan queue:table an und migrieren:

CACHE_STORE=redis
SESSION_DRIVER=database
QUEUE_CONNECTION=database

Bei Avanza, Max und Elastic können Sie Warteschlangen und Sitzungen auch in das persistente Redis verlagern und den Cache in dieser Instanz lassen: Beide laufen gleichzeitig, jedes mit seinem eigenen Socket. Horizon funktioniert nur mit Warteschlangen in Redis, daher ist es mit Redis Cache keine sichere Option: Verwenden Sie queue:work mit der Datenbank oder Horizon mit dem persistenten Redis. Folgen Sie der Laravel-Dokumentation zur Verbindung für die installierte Version.

Mehrere Websites im selben Hosting

Redis verfügt in der Regel über 16 logische Datenbanken, nummeriert von 0 bis 15. Weisen Sie jeder Integration eine andere zu: die Redis Database ID in LiteSpeed Cache, die Konstante aus dem Beispiel in Redis Object Cache oder die Cache-Verbindung in Laravel.

Diese Datenbanken sind keine Sicherheitsgrenze und haben keinen eigenen Speicher. Ein Vorgang, der die gesamte Instanz leert, betrifft auch die anderen Websites. Vermeiden Sie globale Befehle wie FLUSHALL und prüfen Sie, welchen Umfang die Purge-Schaltfläche jeder Integration hat.

Messen und deaktivieren

Vergleichen Sie dieselben Vorgänge vorher und nachher, mit mehreren Wiederholungen. Prüfen Sie Treffer, Fehlschläge, Speicher und Verdrängungen, wenn das Plugin diese Daten anbietet. Ein frisch geleerter Cache muss sich erst wieder füllen.

Redis hält die Daten nur im Arbeitsspeicher: Wenn der Dienst oder der Server neu startet, beginnt die Instanz leer und die Anwendung füllt sie erneut. Deshalb eignet sie sich als Cache und nicht für Daten, die erhalten bleiben müssen; dafür gibt es das persistente Redis.

Die vorgesehene Richtlinie ist allkeys-lru: Wenn das Limit erreicht ist, kann Redis zuletzt wenig genutzte Schlüssel verdrängen, auch wenn sie kein Ablaufdatum haben. Es entfernt nicht unbedingt die ältesten. Ständige Verdrängungen können den Nutzen des Caches verringern; prüfen Sie, was gespeichert wird, bevor Sie den Tarif erweitern.

Um Redis nicht mehr zu nutzen, deaktivieren Sie zuerst die Integration in allen Anwendungen des Kontos, prüfen Sie, ob sie funktionieren, und schalten Sie Redis danach im Paketmanager ab. Wenn Sie den Dienst vorher abschalten, kann die Website Verbindungsfehler zeigen.

Das könnte Ihnen auch helfen

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.