Background Decoration
17.3.2026Dietrich Bojko20 Min. Lesezeit

Skalierung auf Enterprise-Niveau: Laravel 12 Redis API Caching

Zurück zur Übersicht
Skalierung auf Enterprise-Niveau: Laravel 12 Redis API Caching
Nahaufnahme einer futuristischen Speicherbank. Ein rot leuchtender Kristallkern (Redis) reflektiert Datenpakete blitzschnell, sodass sie den Hauptserver umgehen. Cyberpunk-Ästhetik.
2 Views

Häufig gestellte Fragen (FAQ)

Das ist das Schöne an einem sauberen Cache-Setup. Wenn Redis ausfällt (was extrem selten passiert), bricht deine Applikation nicht sofort zusammen. Laravel ist clever genug, auf die Datenbank zurückzufallen. Wenn der Cache::remember() Aufruf den Redis-Server nicht erreicht, wirft Laravel keinen fatalen Error, sondern führt einfach die langsame MySQL-Abfrage aus. Deine Seite wird für diesen Moment zwar spürbar langsamer, aber sie bleibt für deine Nutzer vollständig online und funktionsfähig.
Die kurze Antwort: Nimm immer Redis. Memcached war vor zehn Jahren der Goldstandard und ist extrem schnell, aber es ist ein reiner "Key-Value"-Speicher. Redis ist ein kompletter Datenstruktur-Server. Memcached unterstützt beispielsweise unsere magischen Cache-Tags (die wir für die Pagination zwingend brauchen) überhaupt nicht! Außerdem kann Redis Daten asynchron auf die Festplatte schreiben (Persistenz), was bei Server-Neustarts extrem hilfreich ist.
Wenn du lokal an deinem Code bastelst, wirst du oft absichtlich falsche Daten in die Datenbank schreiben, um Dinge zu testen. Wenn Redis diese alten Daten stur im RAM behält, treibt dich das in den Wahnsinn. Öffne einfach dein Terminal und tippe php artisan cache:clear. Dieser Befehl feuert einen globalen "Flush" ab und fegt deinen gesamten Redis-Speicher in einer Millisekunde komplett leer. Für die lokale Entwicklung kannst du in deiner .env den CACHE_STORE auch einfach temporär auf array stellen – dann existiert der Cache nur für den Bruchteil einer Sekunde während des Requests.
Ja, wenn du unendlich viele Daten für immer speicherst, ist dein RAM irgendwann voll. Aber Redis hat dafür eine geniale Konfiguration namens Eviction Policy (Verdrängungsstrategie). Standardmäßig (meist allkeys-lru) fängt Redis automatisch an, die ältesten Cache-Einträge, die am längsten nicht mehr von Nutzern aufgerufen wurden, lautlos zu löschen, sobald der RAM knapp wird. Du musst dich also nicht manuell um das Aufräumen kümmern.

Wie geht es weiter in Teil 13? Background Jobs & Queues für asynchrone Prozesse

Wir haben in den letzten Kapiteln eine Architektur gebaut, die auf pure, kompromisslose Geschwindigkeit ausgelegt ist. Dein Next.js-Frontend rendert in Millisekunden, und Laravel liefert die Daten dank Redis aus dem RAM, ohne dass die Datenbank auch nur mit der Wimper zuckt.

Aber wir haben ein massives architektonisches Problem bisher völlig ignoriert. Was passiert eigentlich, wenn unser Server wirklich harte, zeitintensive Arbeit verrichten muss?

Stell dir folgendes Szenario vor: Du bist im Admin-Dashboard und klickst auf "Artikel veröffentlichen". Dieser Artikel soll nun per Newsletter an deine 5.000 treuen Abonnenten geschickt werden. Wenn du das auf die klassische, synchrone Art in PHP programmierst, wird dein Server versuchen, 5.000 E-Mails nacheinander über SMTP zu verschicken. Das dauert Minuten! Dein armer Browser-Tab wird sich so lange mit einem Lade-Spinner drehen, bis der Nginx-Server irgendwann entnervt aufgibt und dir einen hässlichen 504 Gateway Timeout Fehler vor die Füße wirft.

All die unglaubliche Geschwindigkeit, die wir mit Redis aufgebaut haben, ist völlig wertlos, wenn wir den Nutzer zwingen, auf langsame Prozesse zu warten.

Genau hier betreten wir im kommenden Teil 13: Background Jobs & Queues für asynchrone Prozesse die echte Profiliga der Webentwicklung. Wir werden die Architektur entkoppeln.

Wir nutzen unseren frisch installierten Redis-Server nicht mehr nur als Datenspeicher, sondern als rasend schnelle Warteschlange (Queue). Wenn du in Zukunft auf "Veröffentlichen" klickst, wird Laravel die 5.000 E-Mails nicht mehr sofort verschicken. Stattdessen packt es diese Aufgabe einfach als kleinen "Job" in die Redis-Warteschlange. Das dauert genau 2 Millisekunden. Der Controller antwortet dem Next.js-Frontend sofort: "Alles klar, Artikel ist online! E-Mails werden im Hintergrund verschickt."

Du wirst lernen, wie wir unsichtbare Hintergrund-Arbeiter (Queue Worker) in Laravel hochfahren, die diese Warteschlange stumm, effizient und völlig losgelöst vom Nutzererlebnis abarbeiten. Wir schauen uns fehlgeschlagene Jobs an, bauen automatische Wiederholungsversuche (Retries) ein und lagern schwere Aufgaben wie Bildkomprimierung oder PDF-Generierung komplett in den Hintergrund aus.

Dietrich Bojko
Über den Autor

Dietrich Bojko

Senior Webentwickler

Webinteger arbeitet seit vielen Jahren produktiv mit Linux-basierten Entwicklungsumgebungen unter Windows.
Der Fokus liegt auf performanten Setups mit WSL 2, Docker, PHP, Node.js und modernen Build-Tools in realen Projekten – nicht auf theoretischen Beispielkonfigurationen.

Die Artikel dieser Serie entstehen direkt aus dem täglichen Einsatz in Kunden- und Eigenprojekten und dokumentieren bewusst auch typische Fehler, Engpässe und bewährte Workarounds.

Webseite besuchen

Schreiben Sie einen Kommentar