Skip to main content
Redis ist ein In-Memory-Key-Value-Store und dient als Backend für viele Laravel-Funktionen. Diese Seite behandelt Konfiguration, Nutzung und Pub/Sub mit Redis in Laravel.

Cache

Redis als Cache-Treiber verwenden

Queues

Redis als Queue-Treiber verwenden

Broadcasting

Echtzeitkommunikation über Pub/Sub

Was ist Redis

Redis ist ein schneller Open-Source-Key-Value-Store. Er unterstützt vielfältige Datenstrukturen (Strings, Hashes, Listen, Sets, sortierte Sets) und wird deshalb auch „Data Structure Server“ genannt. In Laravel wird Redis unter anderem für Folgendes verwendet:

Client-Wahl

Laravel unterstützt zwei Clients: PhpRedis (PHP-Erweiterung) und Predis (PHP-Paket).
In Laravel 13 ist PhpRedis der Standard-Client. In Produktion wird PhpRedis empfohlen. In Laravel Sail ist PhpRedis bereits installiert.

Konfiguration

config/database.php

Die Redis-Konfiguration liegt im Array redis in config/database.php.

Umgebungsvariablen

In der .env legen Sie die Verbindungsziele fest.
Alternativ per URL:

TLS-/SSL-Verbindung

Für TLS-Verschlüsselung geben Sie die Option scheme an.

Clustering

Für einen Cluster aus mehreren Redis-Servern verwenden Sie den Schlüssel clusters.
Standardmäßig ist options.cluster auf redis gesetzt und nutzt das native Redis-Clustering. Da Failover automatisch übernommen wird, ist das für Produktion empfohlen. Um Client-Side-Sharding mit Predis zu verwenden, entfernen Sie options.cluster. Client-Side-Sharding kümmert sich jedoch nicht um Failover und eignet sich daher nur für kurzlebige Daten wie Caches.

Predis konfigurieren

Um Predis zu nutzen, installieren Sie das Paket predis/predis und setzen REDIS_CLIENT auf predis.
Predis-spezifische Verbindungsparameter sind zusätzlich möglich.

Retry-Einstellungen in Predis

Ab Predis 3.4.0 gibt es eingebaute Retry- und Backoff-Konfigurationen. Über max_retries setzen Sie die Retry-Anzahl, über retry die Backoff-Strategie. Für retry übergeben Sie ein Array mit einem der Klassennamen NoBackoff, EqualBackoff oder ExponentialBackoff als Schlüssel.
Für Predis mit Redis-Cluster setzen Sie die Retries in der Cluster-Konfiguration unter parameters.

PhpRedis konfigurieren

PhpRedis installieren Sie über PECL (in Laravel Sail bereits vorhanden). PhpRedis unterstützt zusätzliche Optionen: name, persistent, persistent_id, prefix, read_timeout, retry_interval, max_retries, backoff_algorithm, backoff_base, backoff_cap, timeout, context

Retries und Backoff

Legt fest, wie sich der Client bei Verbindungsfehlern erneut verbindet. Unterstützte Backoff-Algorithmen: default, decorrelated_jitter, equal_jitter, exponential, uniform, constant.

Verbindung über Unix-Socket

Läuft Redis auf demselben Server, spart ein Unix-Socket den TCP-Overhead.

Serialisierung und Kompression

PhpRedis kann Serialisierung und Kompression konfigurieren.
Unterstützte Serialisierer: Unterstützte Kompressionsalgorithmen:

Redis nutzen

Redis-Fassade

Über die Redis-Fassade führen Sie jedes Redis-Kommando aus. Sie leitet Aufrufe per Magic-Methoden an den Server weiter.
Argumente der Kommandos werden einfach als Methodenargumente übergeben.
Mit command geben Sie Kommando und Argumente explizit an.

Mehrere Verbindungen

In config/database.php definieren Sie mehrere Redis-Verbindungen und wechseln mit connection().

Transaktionen

Die Methode transaction() kapselt die Redis-Kommandos MULTI/EXEC. Alle Kommandos innerhalb der Closure werden atomar ausgeführt.
Innerhalb einer Transaktion können Sie keine Werte aus Redis lesen. Die gesamte Closure wird zuerst ausgeführt und die Kommandos anschließend mit EXEC gesammelt gesendet.

Lua-Skripte

Mit eval() führen Sie Lua-Skripte atomar aus. Da Sie im Skript Werte lesen und schreiben können, sind Lua-Skripte flexibler als reine Transaktionen.
Reihenfolge der Argumente: Lua-Skript → Anzahl Keys → Key-Namen … → zusätzliche Argumente … KEYS[1] und KEYS[2] sind die Key-Namen, ARGV[1] und folgende sind zusätzliche Argumente.

Pipelines

Über Pipelines senden Sie viele Kommandos auf einmal und sparen Netzwerk-Roundtrips.
Pipelines bündeln nur den Versand – sie sind nicht atomar. Für atomare Operationen verwenden Sie Transaktionen oder Lua-Skripte.

Pub/Sub

Mit den Redis-Kommandos publish und subscribe tauschen Sie Nachrichten über Kanäle aus.

Subscriber

subscribe() ist ein langlaufender Prozess und wird üblicherweise in einem Artisan-Befehl aufgerufen.

Publisher

Aus einem anderen Request oder Prozess senden Sie eine Nachricht.

Wildcard-Subscriptions

Mit psubscribe() abonnieren Sie Muster.

Zusammenfassung

  • Produktion: PhpRedis (PECL-Erweiterung, hohe Performance)
  • Entwicklung / Umgebungen ohne PECL: Predis (Composer-Paket)
  • Laravel Sail: PhpRedis bereits enthalten
  • Mehrere Redis-Verbindungen in config/database.php je nach Einsatz definieren (default, cache etc.)
  • Im Cluster-Setup den Schlüssel clusters verwenden
  • In Produktion TLS-Verbindungen und Authentifizierung einrichten
Zuletzt geändert am 13. Juli 2026