Skip to main content
Redis est un store clé/valeur en mémoire, utilisé comme backend par de nombreuses fonctionnalités Laravel. De la configuration aux opérations et au Pub/Sub, voici comment utiliser Redis avec Laravel.

Cache

Redis comme driver de cache.

Queue

Redis comme driver de queue.

Broadcasting

Communication temps réel via Pub/Sub.

Qu’est-ce que Redis

Redis est un store clé/valeur haute performance open source. Il gère différents types (chaînes, hashes, listes, sets, sorted sets…) — c’est un « data structure server ». Usages fréquents dans Laravel :

Choix du client

Laravel supporte PhpRedis (extension) et Predis (package PHP).
Sous Laravel 13, le client par défaut est PhpRedis. Recommandé en production. Laravel Sail inclut PhpRedis.

Configuration

config/database.php

Variables d’environnement

Vous pouvez utiliser une URL :

TLS / SSL

Cluster

Par défaut, options.cluster = redis utilise le clustering natif Redis avec failover automatique — recommandé en production. Pour le sharding côté client avec Predis, retirez options.cluster (sans failover, adapté à des données éphémères).

Configuration Predis

Installez le package et changez le client :
Paramètres de connexion spécifiques à Predis :

Retry Predis

À partir de Predis 3.4.0, max_retries et retry (avec NoBackoff, EqualBackoff ou ExponentialBackoff) sont disponibles.
En cluster, réglez le retry dans parameters.

Configuration PhpRedis

PhpRedis s’installe via PECL (déjà présent avec Laravel Sail). Options supplémentaires : name, persistent, persistent_id, prefix, read_timeout, retry_interval, max_retries, backoff_algorithm, backoff_base, backoff_cap, timeout, context.

Retry et backoff

Algorithmes supportés : default, decorrelated_jitter, equal_jitter, exponential, uniform, constant.

Socket Unix

Sur le même serveur, économisez l’overhead TCP.

Sérialisation et compression

Sérialiseurs : Compressions :

Utiliser Redis

Façade Redis

Exécutez toute commande Redis via la façade. Elle transmet magiquement les appels.
Passez les arguments directement.
Ou explicitement via command :

Plusieurs connexions

Basculez avec connection().

Transactions

transaction() encapsule MULTI/EXEC de Redis. Toutes les commandes s’exécutent de manière atomique.
Les lectures ne sont pas possibles dans une transaction : EXEC exécute tout en bloc à la fin.

Scripts Lua

eval() exécute atomiquement un script Lua qui peut lire et écrire.
Arguments : script Lua → nombre de clés → clés… → args supplémentaires. KEYS[1], KEYS[2] = clés ; ARGV[1]… = args.

Pipeline

Envoyez beaucoup de commandes en une fois pour économiser les allers-retours réseau.
Le pipeline groupe l’envoi mais n’est pas atomique. Pour l’atomicité, utilisez une transaction ou un script Lua.

Pub / Sub

Utilisez publish / subscribe pour communiquer par canaux.

Souscripteur

Long-running : dans une commande Artisan.

Publisher

Depuis une autre requête / process :

Souscription avec wildcard

psubscribe() supporte les patterns.

Récapitulatif

  • Production : PhpRedis (extension PECL, haute performance)
  • Dev / environnement contraint : Predis (Composer)
  • Laravel Sail : PhpRedis inclus
  • Connexions multiples via config/database.php (par exemple default / cache)
  • clusters pour un cluster
  • En production, envisagez TLS et authentification
Dernière modification le 13 juillet 2026