Aller au contenu principal
Mise en place d'un cache redis pour un cache Drupal

Drupal propose plusieurs système de cache, notamment APCu, backend.
Pour application développer sous Drupal, il faut mettre un accent particulier sur le cache, et Redis est un performant ayant déjà un module pour faciliter son intégration et sa configuration.

Installation au niveau du serveur

sudo apt install redis-server php8.3-redis

Installation sur Drupal :

composer require 'drupal/redis:^1.10'
Vendor/bin/drush en redis

Configuration au niveau du serveur: /etc/redis/redis.conf

bind 127.0.0.1
port 6379
maxmemory 4GB                # 10-15% de la RAM totale
maxmemory-policy allkeys-lru # Éviction LRU si mémoire pleine
save ""                      # Désactive la persistance (optionnel pour cache)
requirepass "votre_mot_de_passe_secure" # Sécurité !


Configuration au niveau du fichier settings.php de Drupal:

/**
 * Configuration de PhpRedis
 */
// ////////////////////////
// Activer Redis pour cache/sessions/locks
$settings['redis.connection']['interface'] = 'PhpRedis';
$settings['redis.connection']['host'] = '127.0.0.1';
$settings['redis.connection']['password'] = 'hbk_565sKJDpjd695';
$settings['redis.connection']['port'] = 6379;
$settings['redis.connection']['persistent'] = TRUE;

// Cache par défaut (bins principaux)
$settings['cache']['default'] = 'cache.backend.redis';

/**
 * Amorcage de Drupal.
 */
// Amorçage du noyau Drupal (utilisation de ACPu si disponible).
$settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast';
// Config active (YAML importé en DB)
$settings['cache']['bins']['config'] = 'cache.backend.chainedfast';
// Découverte des plugins
$settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast';
/**
 * Bin lourd
 */
$settings['cache']['bins']['render'] = 'cache.backend.redis';
$settings['cache']['bins']['page'] = 'cache.backend.redis';

// Sessions Redis (optionnel mais recommandé pour la cohérence)
$settings['session_storage']['container'] = 'session.storage.redis';
$settings['redis_serialization_php_igbinary'] = TRUE; # Si igbinary est installé
                                                      
// Verrous Redis (évite les conflits en cluster)
$settings['container_yamls'][] = 'modules/contrib/redis/example.services.yml';
$settings['container_yamls'][] = 'modules/contrib/redis/redis.services.yml';

Verifier que le cache redis est bien utilisé:

dd(\Drupal\Core\Cache\Cache::getBins());

Quelques commandes utile pour redis:


Pour ce connecter :

redis-cli

S'authentifier:

127.0.0.1:6379> AUTH passWord

Quitter:

127.0.0.1:6379> QUIT
#Affiche le nombre de clée stockées:
127.0.0.1:6379> DBSIZE

#information sur la memoire:
127.0.0.1:6379> INFO memory

#Scanner les données :
127.0.0.1:6379> SCAN 0 MATCH drupal* COUNT 50

 

 

 

 

 

 

 

Profile picture for user admin Stephane K

Écrit le

Il y'a 4 jours
Modifié
Il y'a 3 jours
Loading ...
WhatsApp
Support Habeuk : +237 694 900 622
WhatsApp Send