WEB-d Développement Web

PHP, SQL, HTML5, CSS3, Javascript, Mootools, Référencement, SEO, CMS, e-commerce, Apache, Linux, Ubuntu, ...

Utiliser APC comme cache

L'extension Advanced PHP Cache (APC) est généralement utilisée pour accélérer l'exécution d'un site en mettant en cache le bytecode PHP. Il est cependant également possible d'utiliser APC pour stocker en cache mémoire d'autres données, comme le résultat d'une requête SQL ou d'un calcul lourd.

Il faut naturellement d'abord installer APC :


sudo apt-get install php-apc
sudo /etc/init.d/apache2 restart

On peut ensuite utiliser le cache au moyen des commandes apc_store($key, $value) et apc_fetch($key) :


$postId = 123;
$key = "post_$postId";
$post = apc_fetch($key);
if ($post === false) {
  // ne se trouvait pas dans le cache APC
  // on doit donc le chercher dans la base de données
  $post = fetchPostFromDB($postId);
  apc_store($key, $post);
}
echo $post;
 

Attention cependant que APC ne sérialise pas les données. Si on souhaite sauver des arrays ou des objets, il faudra donc manuellement les sérialiser avec serialize() ou json_encode()

APC

De plus, APC ne possède pas réellement de politique de remplacement (replacement policy). Lorsque la mémoire est pleine, APC vide complètement la mémoire pour stocker les nouvelles données. Si ce mécanisme agit trop souvent, celà rallentit naturellement l'application. Il faudra donc utiliser le script apc.php fourni pour dimensionner correctement l'espace mémoire alloué à APC (paramètre apc.shm_size) et limiter le nombre de "Cache full count".

Articles similaires