08-12

Cache des données avec MemCache

Tags: memcache | PHP
Memcache Logo MemCache est un système de cache, permettant de stocker presque tout en RAM. Ce système de Cache peut être distribué, sur plusieurs serveurs MemCached. Le port par défaut du démon MemCached est 11211. Sous Debian, l'installation se déroule simplement:
## Le démon:
apt-get install memcached
## L'extension PHP 5
apt-get install php5-memcache
Quelques configurations sont nécessaires pour lancer le démon sous debian, il faut éditer le fichier :
nano /etc/default/memcached
# Editer la ligne pour autoriser le démarrage:
ENABLE_MEMCACHED=yes
# Démarrez ensuite le démon:
/etc/init.d/memcached start
Place maintenant à PHP, vous trouverez plus d'informations sur le book dédié sur le site de PHP.net. Le but de cet article va être de cacher une requête SQL de type COUNT(*).
// Déclaration de l'objet
$memcache = new Memcache;
// Ajout du serveur Memcache:
$memcache->addServer('localhost', 11211);
// Récupération de la variable
$num = $memcache->get('nom_de_ma_clee_unique');
// On test si la variable était, ou non, en cache
if ($num === false){
     // La variable n'est pas présente, on doit faire nos calculs
     $query = mysql_query('SELECT COUNT(*) AS c FROM comments WHERE post_id = 10');
     $num = mysql_fetch_assoc($query);
     // Mise en cache du résultat qui nous intéresse:
     // On cache $num, pendant une durée de 30 secondes.
     $memcache->set('nom_de_ma_clee_unique', $num, MEMCACHE_COMPRESSED, 30);
}
// Affichage des résultats
var_dump($num);
En espérant que ce petit billet vous aidera à mettre en cache quelques unes de vos plus lourdes requêtes.

 

 

Aucun commentaire pour ce billet.

 

Votre commentaire