Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Verwenden von Redis Object Cache zur Beschleunigung Ihrer WordPress-Installation

Redis ist ein Open-Source (BSD-lizenzierter) In-Memory-Datenstrukturspeicher, der als Datenbank, Cache und Nachrichtenbroker verwendet wird. Es kann mit anderen Datenbanken wie MySQL kombiniert werden, um einen Mechanismus zum Zwischenspeichern Ihrer Abfragen bereitzustellen.

In diesem Artikel zeigen wir, wie man die MySQL-Abfragen zwischenspeichert, die zum Rendern von WordPress-Seiten erforderlich sind. Dies wird uns erhebliche Leistungssteigerungen bringen, wenn auch mit einigen Einschränkungen.

Einführung in besseres WordPress-Caching

WordPress verwendet die MySQL-Datenbank, um interne Anwendungsobjekte (Breadcrumbs, Menüpunkte usw.) zwischenzuspeichern, deren Generierung teuer sein kann. Da die Datenbank auch Abfragen für Seitenanfragen verarbeitet, ist dies möglicherweise der häufigste Engpass und verursacht häufig erhöhte Ladezeiten.

Redis bietet einen Caching-Mechanismus, der als Alternative zur MySQL-Datenbank fungiert. Wenn ein Benutzer eine WordPress-Seite besucht, werden die zum Generieren der Seite erforderlichen MySQL-Abfragen über Redis bereitgestellt, das die Ergebnisse zwischenspeichert. Dies führt zu blitzschnellen Ladezeiten, vergleichbar mit statischen Seiten.

Eine weitere beliebte Caching-Option ist Memcached. Allerdings macht Redis fast alles, was Memcached tut, also werden wir für dieses Tutorial das ScaleGrid-Hosting für Redis™* verwenden.

Wie funktioniert Redis-Caching?

Wenn ein Benutzer zum ersten Mal eine WordPress-Seite anfordert, wird eine MySQL-Abfrage auf dem Server durchgeführt. Redis speichert diese Abfrage zwischen, sodass die Ergebnisse von Redis bereitgestellt werden, wenn ein anderer Benutzer dieselbe WordPress-Seite anfordert, ohne dass die Datenbank erneut abgefragt werden muss.

Wenn die Abfrage nicht in Redis zwischengespeichert wird, werden die Ergebnisse von MySQL bereitgestellt, die dann dem Redis-Cache hinzugefügt werden.

Wenn ein bestimmter Wert in der Datenbank aktualisiert wird, wird der entsprechende Redis-Wert ungültig, um zu verhindern, dass dem Benutzer fehlerhafte Cache-Daten bereitgestellt werden.

Tutorial-Anforderungen

Hier ist die Liste der in diesem Artikel verwendeten Technologien:

  • 2 WordPress-Installationen (mit und ohne Plugin, für Benchmarks)
  • Redis™-Server
  • Redis WP-Objekt-Cache-Plugin
So beschleunigen Sie Ihre WordPress-Installation mit Redis Object CacheClick To Tweet

WordPress-Installation

Sie können die neueste Version von WordPress hier herunterladen und zwei verschiedene Installationen auf einem Host wie Heroku oder AWS einrichten.

Redis-Server

ScaleGrid bietet erstklassige Unterstützung für Redis™ Standalone und Master/Slave-Cluster mit erweiterten Sicherheitsfunktionen. Wir verwenden einen eigenständigen Redis™-Cluster, der auf ScaleGrid mit der Allkeys-LRU-Caching-Strategie gehostet wird, und Sie können sich für eine kostenlose 30-tägige Testversion unseres Hostings für Redis™ anmelden, um uns bei diesem Tutorial zu unterstützen.

Redis WP Object Cache Plugin

Dieses Plugin wird als Drop-In für Ihre WordPress-Installation verwendet und kann so konfiguriert werden, dass es den Redis™-Host verwendet. Das Plugin finden Sie hier.

Einrichtungsanleitung:Redis-Objekt-Cache für WordPress

Hier sind die Schritte, um das Redis Object Cache Plugin auf einer WordPress-Installation zu installieren.

Schritt 1:Installieren Sie das Redis-Cache-Plugin

Diese Anleitung geht davon aus, dass Sie bereits zwei neue Installationen von WordPress eingerichtet haben. Auf einem davon müssen Sie das Redis Object Cache-Plugin installieren. Sobald das Plugin installiert ist, können Sie es über das Plugins-Menü aktivieren.

Schritt 2:Finden Sie Redis in Ihren Einstellungen

Sobald das Plugin aktiviert ist, erscheint eine Redis-Option im Einstellungsmenü.

Schritt 3:WordPress-Konfigurationen hinzufügen

Nach der Einrichtung des Plugins müssen wir der WordPress-Konfigurationsdatei Konfigurationsoptionen hinzufügen. Sie müssen mindestens die folgenden Optionen einrichten:

define('WP_REDIS_HOST', '');
define('WP_REDIS_PASSWORD', '');

Sie finden die oben genannten Optionen auf der ScaleGrid-Clusterdetailseite für Redis™.

Speichern Sie die Konfiguration und aktivieren Sie den Objekt-Cache. Wenn die Authentifizierung korrekt ist, sollten Sie den folgenden Bildschirm sehen:

Zu diesem Zeitpunkt wurde Redis als Cache für Ihre WordPress-Installation konfiguriert.

WordPress-Abfragen überwachen und debuggen

Alle Redis-Cluster werden mit dem Redis-Befehlszeilenschnittstellentool (redis-cli) installiert, mit dem Sie die eingehenden Abfrageanforderungen von WordPress überwachen können. Hier ist ein Screenshot, wie das aussehen könnte:

Wenn Sie keine Ausgabe auf der Konsole sehen, gehen Sie zur WordPress-Website und aktualisieren Sie sie.

WordPress- und Redis-Metriken zum Nachverfolgen

Die wichtigste Metrik, die hier verfolgt werden muss, ist die Seitenladezeit. Hier ist die Standardkonfiguration, die wir für die Neuinstallation verwenden:

  • WordPress:4.9.5
  • Redis:v.4.0.2
  • WordPress-Design:Twenty Seventeen

Basierend auf einer Neuinstallation mit den oben genannten Parametern können wir eine fast 50 %ige Reduzierung der Seitenladezeiten feststellen:

  • Ohne der Redis-Objekt-Cache =~900 ms
  • Mit der Redis-Objekt-Cache =~400 ms

Nachteile des Redis-Objekt-Cache

Es gibt ein paar Vorbehalte bei der Verwendung des Redis Object Cache-Ansatzes auf WordPress. Der Caching-Mechanismus funktioniert nicht gut, wenn Sie viele Plugins und Designs installiert haben. Dies liegt daran, dass alle ihre Daten ebenfalls mit Redis zwischengespeichert werden müssten.

In unserem früheren Artikel erfahren Sie auch, wie Sie Tweets mit Node.js, Redis und Socket.io zwischenspeichern.

Wie immer, wenn Sie etwas Großartiges bauen, twittern Sie uns darüber @scalegridio. Wenn Sie Hilfe beim Verwalten oder Hosten von MongoDB® Database oder Redis™ benötigen, wenden Sie sich an [email protected].