Laravel Cache - Schnelle Web-Applikationen
14. November 2016
Veröffentlicht in:
WebentwicklungBessere Performance im Web mit Laravel
Applikationen im Web müssen schnell und performant laufen. Dies ist eine wichtige Voraussetzung für den Erfolg Ihrer Webpräsenz. So gibt etwa der Suchmaschinenbetreiber Google an, dass bereits 0,5 Sekunden zusätzliche Ladezeit zu einem Rückgang des Traffics um 20 Prozent führt. Somit sind nicht nur Aufbau und Programmierung von Applikationen, sondern insbesondere auch deren schnelle Performance, von Bedeutung. Genau mit diesem Faktor können Web-Anwendungen, die auf Laravel basieren, im ständigen Wettbewerb um Millisekunden punkten.
Funktionsweise des Laravel Cache
Das Caching liefert den wichtigsten Beitrag zu einer Verbesserung und Verkürzung der Ladezeit. Der Cache stellt einen schnellen Zwischenspeicher dar, der bei wiederholten Zugriffen vermeidet, dass jedes mal komplexe neue Abfragen und Berechnungen angestellt werden müssen. Die Daten können direkt aus dem Cache (Zwischenspeicher) geladen werden. Der Laravel Cache ist treiberbasiert und es werden einige geläufige Caching-Systeme angeboten. Neben dem Standard (Dateisystem oder MySQL Datenbank), bietet Laravel auch hoch performante In-Memory-Cache Optionen, wie etwa Redis oder memcached, an. Diese komplexeren Caching-Systeme benötigen aber gesonderte Serverkonfigurationen und sind oft bei kleineren Hostingpaketen nicht verfügbar.
Caching mit Laravel
Nachdem potentielle Kunden eine URL in ihren Browser eingeben, erhält der Server, auf dem Ihre Web-Applikation gehostet ist, eine Anfrage. Diese wird weitergeleitet (oft durch weitere Anfragen zum Datenbankserver), bevor sie eine Antwort ausgibt. Diese vielfältigen und komplexen Anfragen an den Datenbankserver stellen aufwändige Operationen dar, die zahlreiche Ressourcen kosten. Dies wird deutlich, wenn Sie sich vorstellen, dass mehrere Hundert Kunden gleichzeitig auf Ihrer Internetseite unterwegs sind und Anfragen an den Datenbankserver schicken. Diese Anfragen immer wieder einzeln abzuarbeiten würde große und zudem teure Rechenkapazitäten erfordern, weshalb es effizienter ist, die meistfrequentierten Seiten nur einmal weiterzuleiten und sie anschließend im Cache zu speichern. Künftige Anfragen werden dann direkt aus dem Cache beantwortet werden. In den Grundeinstellungen ist Laravel so eingerichtet, Cache im Dateisystem zu speichern. Bei größeren Applikationen empfiehlt sich jedoch In-Memory Cache, wie Redis.
Nutzung von Redis
Laravel unterstützt werksseitig In-Memory-Cache - neben memcached auch Redis. Der Unterschied zwischen In-Memory-Cache und anderen Cache-Formen liegt in den verschiedenen genutzten Speicherorten: Festplatte oder Arbeitsspeicher. Die Festplatte speichert Daten dauerhaft auch ohne den Betrieb des Rechners. So wird Datenverlust vorgebeugt, wobei aber gleichzeitig der Nachteil entsteht, dass das Schreiben und Auslesen von Dateien auf der Festplatte mehr Zeit in Anspruch nimmt als der Zugriff auf Daten im Arbeitsspeicher. Letzterer ist zudem auf Geschwindigkeit ausgelegt, so dass Schreiben und Lesen von Daten besonders schnell verarbeitet werden kann. Jedoch werden die Daten im Arbeitsspeicher nicht dauerhaft gespeichert. Bei der Nutzung des Caches und des Rückgriffs auf den Arbeitsspeicher (In-Memory Cache) durch Laravel werden lediglich Daten, die das Ergebnis neuerer Berechnungen sind, abgelegt. Die grundlegenden Daten, etwa die Inhalte einer Datenbank, sind auf der Festplatte gespeichert. Durch die Nutzung des In-Memory Caches werden enorme Rechen- und Ladezeiten eingespart.
Laravel Cache führt zu besserer Web-Performance
Durch die Nutzung von Laravel und die Einrichtung von Redis als In-Memory Cache greifen Sie erheblich schneller auf Daten zu und verringern Ladezeiten. Studien und Erfahrungswerte zu letztendlichen Performance beziehungsweise dem Ausmaß, in dem der In-Memory-Cache die Ladezeiten verringern kann, gehen von durchschnittlich halb so langer Ladezeit aus. Hierbei ist die Ladezeit unter Nutzung von Redis noch etwas kürzer als die bei Verwendung von memcached.
Sie haben Fragen zu Laravel? Sprechen Sie uns an! Bei mindtwo in Bonn beraten wir Sie gerne bei Ihrer Laravel Entwicklung.
Können wir weiterhelfen?
Sie haben ein spannendes Projekt und möchten mit uns zusammenarbeiten? Kontaktieren Sie uns jetzt!