Redis comme cache applicatif
Redis est un magasin clé-valeur en mémoire, idéal pour le cache applicatif, les sessions PHP et les files d'attente légères. Sur un VPS Performance HolyCloud, il réduit la pression sur MySQL et PHP-FPM.
Prérequis
- VPS avec 1 Go+ RAM libre pour Redis (ajustez
maxmemory) - Application compatible (Laravel, Symfony, WordPress avec plugin, PrestaShop, etc.)
- Accès sudo
- Pare-feu : port 6379 uniquement en local sauf cluster dédié
Installation Redis
sudo apt update
sudo apt install -y redis-server
redis-cli ping
Configuration /etc/redis/redis.conf :
bind 127.0.0.1 ::1
protected-mode yes
maxmemory 512mb
maxmemory-policy allkeys-lru
appendonly yes
sudo systemctl enable --now redis-server
Sécurité minimale
# mot de passe fort
sudo redis-cli CONFIG SET requirepass "MOT_DE_PASSE_LONG"
Persistez dans redis.conf :
requirepass MOT_DE_PASSE_LONG
Ne exposez jamais Redis sans mot de passe sur une IP publique.
Cache objet PHP (exemple Predis)
composer require predis/predis
<?php
$client = new Predis\Client([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'password' => getenv('REDIS_PASSWORD'),
]);
$key = 'article:' . $id;
if ($client->exists($key)) {
$data = json_decode($client->get($key), true);
} else {
$data = fetch_from_database($id);
$client->setex($key, 3600, json_encode($data));
}
Sessions PHP dans Redis
Installez l'extension :
sudo apt install -y php-redis
/etc/php/8.3/fpm/php.ini :
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379?auth=MOT_DE_PASSE_LONG"
Redémarrez PHP-FPM. Vérifiez :
redis-cli -a MOT_DE_PASSE_LONG KEYS 'PHPREDIS_SESSION:*' | head
Laravel
.env :
CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=MOT_DE_PASSE_LONG
php artisan config:cache
php artisan cache:clear
WordPress (plugin object cache)
Utilisez un plugin Redis Object Cache reconnu. wp-config.php :
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PASSWORD', 'MOT_DE_PASSE_LONG');
define('WP_CACHE', true);
Stratégies TTL
| Type de donnée | TTL suggéré |
|---|---|
| ---------------- | ------------- |
| Page HTML fragment | 60–300 s |
| Config / menus | 3600 s |
| Session utilisateur | 24 h (sliding) |
| Compteur rate-limit | 60 s |
Invalidez le cache à l'écriture :
$client->del(['article:' . $id, 'articles:list']);
Monitoring rapide
redis-cli -a MOT_DE_PASSE_LONG INFO memory
redis-cli -a MOT_DE_PASSE_LONG DBSIZE
redis-cli -a MOT_DE_PASSE_LONG --latency
Alerte si used_memory approche maxmemory — évictions LRU.
Haute disponibilité (rappel)
Sur un VPS unique, Redis est un point unique de défaillance. Pour la production critique, envisagez Redis sur un second VPS, réplication, ou service managé — au-delà de ce guide mono-nœud.
Dépannage
| ---------- | -------- |
|---|---|
| Connexion refusée | bind, pare-feu, mauvais mot de passe |
| Données « fantômes » | TTL manquant ou invalidation oubliée |
| Latence élevée | redis-cli --latency, gros values → compression |
Besoin d'aide ?
Ticket HolyCloud avec INFO, plan RAM et stack (PHP version, CMS) si vous hésitez sur la taille maxmemory.