Retourner sur le site

Redis comme cache applicatif

Déployer Redis sur un VPS HolyCloud et l'utiliser comme cache sessions, objets et requêtes pour alléger PHP et MySQL.

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

| Symptome | Action |

|----------|--------|

| OOM Redis | Augmenter RAM VPS ou baisser maxmemory |

| 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.