Aller au contenu

Memcached

De Marmits Wiki

Memcached est un système de cache en mémoire rapide et léger utilisé pour stocker temporairement des données (objets, résultats de requêtes, sessions) afin d’accélérer les applications web. Il fonctionne en RAM, est multi-thread, et permet à plusieurs processus ou serveurs d’accéder à un cache partagé.

Sur Debian, le paquet memcached installe le démon serveur, la configuration système, et des outils pour gérer le cache, tandis que l’extension PHP (php-memcached) permet aux applications PHP (comme MediaWiki) de l’utiliser facilement.

Installer et activer Memcached sur Debian/Ubuntu avec PHP 8.3-FPM pour MediaWiki.


1️⃣ Installer Memcached côté serveur

sudo apt update
sudo apt install memcached libmemcached-tools

Vérifier que le service est actif :

systemctl status memcached

Tu dois voir :

Active: active (running)

Pour démarrer/activer au boot :

sudo systemctl enable --now memcached

2️⃣ Installer l’extension PHP Memcached pour PHP 8.3

sudo apt install php8.3-memcached

Redémarre PHP-FPM pour que l’extension soit prise en compte :

sudo systemctl restart php8.3-fpm

Vérifie l’extension :

php -m | grep memcached

Tu dois obtenir :

memcached

Ou avec une page phpinfo() côté web, tu dois voir memcached support: enabled.



3️⃣ Configurer MediaWiki pour utiliser Memcached

Dans LocalSettings.php, remplace tes caches existants :

$wgMainCacheType = CACHE_MEMCACHED;
$wgParserCacheType = CACHE_MEMCACHED;
$wgMessageCacheType = CACHE_MEMCACHED;
$wgSessionCacheType = CACHE_MEMCACHED;

$wgMemCachedServers = [ '127.0.0.1:11211' ];

$wgUseFileCache = false;  // inutile avec Memcached

4️⃣ Vérifier que Memcached fonctionne avec MediaWiki

  1. Crée une nouvelle page test
  2. Vérifie qu’elle est visible dans les catégories immédiatement après création
  3. Optionnel : purger les jobs pour être sûr que le parser cache est à jour :
php maintenance/runJobs.php --maxjobs=5000

5️⃣ Bonus : améliorer stabilité avec OPcache et APCu

Tu peux garder OPcache et APCu pour PHP, mais MediaWiki utilisera Memcached pour tout le cache partagé. Exemple :

$wgMainCacheType = CACHE_MEMCACHED;    // partagé
$wgParserCacheType = CACHE_MEMCACHED;  // partagé
$wgMessageCacheType = CACHE_MEMCACHED; // partagé

// côté PHP
; opcache.enable=1
; apcu.enable=1