So konfigurieren Sie Redis Caching zur Beschleunigung von WordPress unter Ubuntu 14.04

Einführung

Redis ist ein Open-Source-Schlüsselwertspeicher, der sowohl als In-Memory-Speicher als auch als Cache fungieren kann. Redis ist ein Datenstrukturserver, der als eigenständiger Datenbankserver oder zusammen mit einer relationalen Datenbank wie MySQL verwendet werden kann, um die Dinge zu beschleunigen, wie in diesem Lernprogramm beschrieben.

In diesem Lernprogramm wird Redis als Cache für WordPress konfiguriert, um die redundanten und zeitaufwändigen Datenbankabfragen zum Rendern einer WordPress-Seite zu verringern. Das Ergebnis ist eine WordPress-Site, die viel schneller ist, weniger Datenbankressourcen verwendet und einen anpassbaren dauerhaften Cache bietet. Diese Anleitung bezieht sich auf Ubuntu 14.04.

Obwohl jede Site anders ist, finden Sie unten ein Beispiel für eine Standard-Wordpress-Installationshomepage mit und ohne Redis, wie in diesem Handbuch konfiguriert. Chrome-Entwicklertools wurden zum Testen mit deaktiviertem Browser-Caching verwendet.

Standard WordPress Homepage ohne Redis:

Ladezeit der Seite 804 ms

Standard WordPress Homepage mit Redis:

Ladezeit der Seite: 449 ms

[.note] #Note: Diese Implementierung des Redis-Caching für WordPress basiert auf einem gut kommentierten Skript von Drittanbietern. Das Skript wird auf dem Asset-Server von DigitalOcean gehostet, wurde jedoch extern entwickelt. Wenn Sie Redis Caching für WordPress selbst implementieren möchten, müssen Sie weitere Arbeiten basierend auf den hier vorgestellten Konzepten ausführen.
#

Redis vs. Memcached

Memcached ist auch eine beliebte Cache-Wahl. Zu diesem Zeitpunkt macht Redis jedoch alles, was Memcached kann, mit einem viel größeren Funktionsumfang. DiesesStack Overflow page enthält einige allgemeine Informationen als Übersicht oder Einführung für Personen, die neu bei Redis sind.

Wie funktioniert das Caching?

Beim ersten Laden einer WordPress-Seite wird eine Datenbankabfrage auf dem Server durchgeführt. Redis merkt sich diese Abfrage odercaches. Wenn also ein anderer Benutzer die Wordpress-Seite lädt, werden die Ergebnisse von Redis und aus dem Speicher bereitgestellt, ohne dass die Datenbank abgefragt werden muss.

Die in diesem Handbuch verwendete Redis-Implementierung fungiert als permanenter Objekt-Cache für WordPress (kein Ablaufdatum). Ein Objekt-Cache zwischenspeichert die SQL-Abfragen im Speicher, die zum Laden einer WordPress-Seite benötigt werden.

Wenn eine Seite geladen wird, werden die resultierenden SQL-Abfrageergebnisse von Redis aus dem Speicher bereitgestellt, sodass die Abfrage nicht auf die Datenbank zugreifen muss. Das Ergebnis sind viel schnellere Ladezeiten und eine geringere Serverauslastung der Datenbankressourcen. Wenn eine Abfrage in Redis nicht verfügbar ist, stellt die Datenbank das Ergebnis bereit und Redis fügt das Ergebnis seinem Cache hinzu.

Wenn ein Wert in der Datenbank aktualisiert wird (z. B. ein neuer Beitrag oder eine neue Seite in WordPress erstellt wird), wird der Redis-Wert für diese Abfrage ungültig, um zu verhindern, dass fehlerhafte zwischengespeicherte Daten angezeigt werden.

Wenn beim Caching Probleme auftreten, kann der Redis-Cache mithilfe des Befehlsflushall in der Redis-Befehlszeile gelöscht werden:

redis-cli

Sobald Sie die Eingabeaufforderung sehen, geben Sie Folgendes ein:

flushall

Zusätzliche Referenz:WordPress Object Cache Documentation

Voraussetzungen

Bevor Sie dieses Handbuch starten, müssen Sie einen sudo-Benutzer einrichten und WordPress installieren.

  • Ubuntu 14.04 Droplet (1 GB oder höher empfohlen)

  • Addiere einsudo user

  • Installieren Sie WordPress. Diese Anleitung wurde mitthese instructions getestet, obwohl es viele Möglichkeiten gibt, WordPress zu installieren

[[Schritt-1 - Install-Redis]] == Schritt 1 - Redis installieren

Um Redis mit WordPress verwenden zu können, müssen zwei Pakete installiert werden:redis-server undphp5-redis. Das Paketredis-serverbietet Redis selbst, während das Paketphp5-rediseine PHP-Erweiterung für PHP-Anwendungen wie WordPress zur Kommunikation mit Redis bereitstellt.

Installieren Sie die Software:

sudo apt-get install redis-server php5-redis

[[Schritt 2 - Konfigurieren von Redis als Cache] == Schritt 2 - Konfigurieren von Redis als Cache

Redis kann sowohl als NoSQL-Datenbankspeicher als auch als Cache betrieben werden. In diesem Handbuch und Anwendungsfall wird Redis als Cache konfiguriert. Dazu sind folgende Einstellungen erforderlich.

Bearbeiten Sie die Datei/etc/redis/redis.conf und fügen Sie unten die folgenden Zeilen hinzu:

sudo nano /etc/redis/redis.conf

Fügen Sie diese Zeilen am Ende der Datei hinzu:

maxmemory 256mb
maxmemory-policy allkeys-lru

Speichern und schließen Sie die Datei, wenn die Änderungen abgeschlossen sind.

[[Schritt-3 -—- Redis-Cache-Backend-Skript erhalten]] == Schritt 3 - Redis-Cache-Backend-Skript erhalten

Dieses PHP-Skript für WordPress wurde ursprünglich vonEric Mann entwickelt. Es ist ein Redis-Objekt-Cache-Backend für WordPress.

Laden Sie das Skriptobject-cache.phpherunter. Dieser Download stammt vom Asset-Server von DigitalOcean, jedoch vonthis is a third-party script. Sie sollten die Kommentare im Skript lesen, um zu sehen, wie es funktioniert.

Laden Sie das PHP-Skript herunter:

wget https://assets.digitalocean.com/articles/wordpress_redis/object-cache.php

Verschieben Sie die Datei in das Verzeichnis/wp-contentIhrer WordPress-Installation:

sudo mv object-cache.php /var/www/html/wp-content/

Abhängig von Ihrer WordPress-Installation kann Ihr Standort unterschiedlich sein.

[[Schritt-4 -—- Cache-Einstellungen in-wp-config-php aktivieren]] == Schritt 4 - Cache-Einstellungen in wp-config.php aktivieren

Bearbeiten Sie als Nächstes die Dateiwp-config.php, um ein Cache-Schlüsselsalz mit dem Namen Ihrer Site (oder einer beliebigen Zeichenfolge) hinzuzufügen.

nano /var/www/html/wp-config.php

Fügen Sie diese Zeile am Ende des Abschnitts* Authentication Unique Keys and Salts. hinzu:

define('WP_CACHE_KEY_SALT', 'example.com');

Sie können Ihren Domain-Namen oder eine andere Zeichenfolge als Salt verwenden.

Note: Für Benutzer, die mehr als eine WordPress-Site hosten, kann jede Site dieselbe Redis-Installation gemeinsam nutzen, solange sie über ein eigenes eindeutiges Cache-Key-Salt verfügt.

Fügen Sie außerdem die folgende Zeile nach der ZeileWP_CACHE_KEY_SALThinzu, um einen dauerhaften Cache mit dem Redis-Objektcache-Plugin zu erstellen:

define('WP_CACHE', true);

Alles in allem sollte Ihre Datei so aussehen:

 * Authentication Unique Keys and Salts.

. . .

define('NONCE_SALT',       'put your unique phrase here');

define('WP_CACHE_KEY_SALT', 'example.com');
define('WP_CACHE', true);

Speichern und schließen Sie die Datei.

[[Schritt 5 - Neustart von Redis und Apache] == Schritt 5 - Starten Sie Redis und Apache neu

Starten Sie abschließendredis-service undapache2 neu.

Redis neu starten:

sudo service redis-server restart

Starten Sie Apache neu:

sudo service apache2 restart

Starten Siephp5-fpm neu, wenn Sie es verwenden. Dies ist nicht Teil der Basisinstallation auf DigitalOcean:

sudo service php5-fpm restart

Das ist es! Ihre WordPress-Site verwendet jetzt Redis-Caching. Wenn Sie die Seitenladegeschwindigkeiten und die Ressourcennutzung überprüfen, sollten Sie Verbesserungen feststellen.

Überwachen Sie Redis mit redis-cli

Verwenden Sie zum Überwachen von Redis den Befehlredis-cli wie folgt:

redis-cli monitor

Wenn Sie diesen Befehl ausführen, wird die Echtzeitausgabe von Redis für zwischengespeicherte Abfragen angezeigt. Wenn Sie nichts sehen, besuchen Sie Ihre Website und laden Sie eine Seite neu.

Unten finden Sie ein Beispiel für die Ausgabe einer WordPress-Site, die gemäß dieser Anleitung mit Redis konfiguriert wurde:

OK
1412273195.815838 "monitor"
1412273198.428472 "EXISTS" "example.comwp_:default:is_blog_installed"
1412273198.428650 "GET" "example.comwp_:default:is_blog_installed"
1412273198.432252 "EXISTS" "example.comwp_:options:notoptions"
1412273198.432443 "GET" "example.comwp_:options:notoptions"
1412273198.432626 "EXISTS" "example.comwp_:options:alloptions"
1412273198.432799 "GET" "example.comwp_:options:alloptions"
1412273198.433572 "EXISTS" "example.comwp_site-options:0:notoptions"
1412273198.433729 "EXISTS" "example.comwp_:options:notoptions"
1412273198.433876 "GET" "example.comwp_:options:notoptions"
1412273198.434018 "EXISTS" "example.comwp_:options:alloptions"
1412273198.434161 "GET" "example.comwp_:options:alloptions"
1412273198.434745 "EXISTS" "example.comwp_:options:notoptions"
1412273198.434921 "GET" "example.comwp_:options:notoptions"
1412273198.435058 "EXISTS" "example.comwp_:options:alloptions"
1412273198.435193 "GET" "example.comwp_:options:alloptions"
1412273198.435737 "EXISTS" "example.comwp_:options:notoptions"
1412273198.435885 "GET" "example.comwp_:options:notoptions"
1412273198.436022 "EXISTS" "example.comwp_:options:alloptions"
1412273198.436157 "GET" "example.comwp_:options:alloptions"
1412273198.438298 "EXISTS" "example.comwp_:options:notoptions"
1412273198.438418 "GET" "example.comwp_:options:notoptions"
1412273198.438598 "EXISTS" "example.comwp_:options:alloptions"
1412273198.438700 "GET" "example.comwp_:options:alloptions"
1412273198.439449 "EXISTS" "example.comwp_:options:notoptions"
1412273198.439560 "GET" "example.comwp_:options:notoptions"
1412273198.439746 "EXISTS" "example.comwp_:options:alloptions"
1412273198.439844 "GET" "example.comwp_:options:alloptions"
1412273198.440764 "EXISTS" "example.comwp_:options:notoptions"
1412273198.440868 "GET" "example.comwp_:options:notoptions"
1412273198.441035 "EXISTS" "example.comwp_:options:alloptions"
1412273198.441149 "GET" "example.comwp_:options:alloptions"
1412273198.441813 "EXISTS" "example.comwp_:options:notoptions"
1412273198.441913 "GET" "example.comwp_:options:notoptions"
1412273198.442023 "EXISTS" "example.comwp_:options:alloptions"
1412273198.442121 "GET" "example.comwp_:options:alloptions"
1412273198.442652 "EXISTS" "example.comwp_:options:notoptions"
1412273198.442773 "GET" "example.comwp_:options:notoptions"
1412273198.442874 "EXISTS" "example.comwp_:options:alloptions"
1412273198.442974 "GET" "example.comwp_:options:alloptions"

Drücken SieCTRL-C, um die Ausgabe zu stoppen.

Dies ist nützlich, um genau zu sehen, welche Abfragen von Redis verarbeitet werden.

Fazit

Nachdem Sie diese Anleitung befolgt haben, wird WordPress nun so konfiguriert, dass Redis unter Ubuntu 14.04 als Cache verwendet wird.

Im Folgenden finden Sie einige zusätzliche Sicherheits- und Administrationshandbücher für WordPress, die möglicherweise von Interesse sind: