Als Webshop-Betreiber ist man immer bestrebt, seinen Kunden die bestmögliche Website-Performance zu bieten. Gerade Webshops mit vielen Besuchern benötigen effiziente Lösungen, damit eine große Anzahl generierter User-Sessions nicht zu Lasten der Web-Performance geht. Im folgenden Artikel möchten wir Ihnen erklären, welche Möglichkeiten Sie haben, die Geschwindigkeit Ihres Magento-Shops mit Redis zu verbessern. Im zweiten Abschnitt zeigen wir Ihnen, wie Sie Redis zur Geschwindigkeitsoptimierung in Ihren Magento-Shop implementieren können.
Mit Redis können die Sessions direkt im Arbeitsspeicher abgelegt und von dort extrem schnell abgerufen werden, um dadurch die Geschwindigkeit des Webshops zu beschleunigen.
Was ist Redis?
Redis ist eine quelloffene In-Memory Datenbank, welche in die Gruppe der NoSQL-Datenbanken einzuordnen ist. Die Datenhaltung erfolgt durch einen einfachen Key-Value-Store, wodurch ein extrem schneller Zugriff auf die im Arbeitsspeicher zwischengespeicherten Informationen ermöglicht wird. Es bietet dadurch die Performance, Skalierbarkeit und Stabilität, die notwendig sind, um große Webshops zu betreiben.Magento-Sessions speichern mit Redis
Jeder Nutzer erzeugt beim Besuch eines Webshops eine Session in der benutzerspezifische Informationen gespeichert werden. Zu diesen Informationen gehört beispielsweise der Inhalt des Warenkorbs oder die Konfiguration eines individualisierbaren Artikels. Diese Informationen werden von Magento für gewöhnlich in einer Datei (pro Session) auf dem Dateisystem gespeichert. Bei einer großen Besucherzahl kann dies schnell zu einer erheblichen Menge an Dateien führen, was das Lesen dieser Dateien deutlich verlangsamt. Dadurch verschlechtert sich die Web-Performance für den Besucher, was sich beispielsweise in einem deutlich verzögertem Checkout-Prozess bemerkbar macht.Mit Redis können die Sessions direkt im Arbeitsspeicher abgelegt und von dort extrem schnell abgerufen werden, um dadurch die Geschwindigkeit des Webshops zu beschleunigen.
Magento Full-Page-Cache mit Redis
Neben dem Speichern von Sessions kann Redis auch verwendet werden, um den gesamten Webshop im Arbeitsspeicher zu halten und von dort auszuliefern (Full-Page-Cache). Normalerweise werden bei jedem Abruf einer Seite die darauf befindlichen Prozeduren ausgeführt und die Ergebnisse dem Nutzer bereitgestellt. Durch einen Full-Page-Cache werden diese Informationen im Arbeitsspeicher zwischengespeichert, sodass die Inhalte nicht immer neu generiert werden müssen. Obwohl Redis auch problemlos als Full-Page-Cache für Magento eingesetzt werden kann, empfehlen die Magento Entwickler stattdessen ausdrücklich Varnish für diesen Zweck einzusetzen und sich mit Redis auf das Speichern von Sessions zu beschränken.Redis-Serverinstanz aktivieren
Um Redis mit Magento verwenden zu können, ist eine aktive Redis-Serverinstanz erforderlich. Das Softwarepaket und Installationshinweise lassen sich direkt beim Entwickler abrufen. Die Installation ist nur auf Linux-Servern empfohlen, weil eine Windows-Version nicht offiziell unterstützt wird. Bei unseren Managed-Hosting Produkten können Sie Redis-Instanzen auf Knopfdruck aktivieren, sodass keine weiteren Schritte erforderlich sind.Redis ist bei unserem Web-Hosting ab dem Tarif 'Black' inklusive. Bei unseren Managed-Servern kann Redis ab dem Tarif 'L' gegen eine einmalige Einrichtungsgebühr aktiviert werden.
Redis aktivieren in Magento 2
Ab Magento-Edition zwei ist Redis bereits in das Shopsystem integriert, sodass die Aktivierung mit einem einzelnen Befehl über die Kommandozeile im Stammverzeichnis der Magento-Installation erfolgen kann. Mit dem folgenden Befehl können Sie Redis zum Speichern der Sessions für Ihren Magento-Shop aktivieren:bin/magento setup:config:set --session-save=redis --session-save-redis-host=127.0.0.1 --session-save-redis-log-level=3 --session-save-redis-db=2
Eine ausführliche Beschreibung der Paramter finden Sie direkt in der Magento-Dokumentation. Dort finden Sie auch weitere Informationen zum Aktivieren von Redis als Full-Page-Cache in Magento.