Le blog du pangolin

Accueil > Programmation > PHP > Utiliser l’extension PHP memcache sous windows.

Utiliser l’extension PHP memcache sous windows.

lundi 30 janvier 2012, par Super Pangolin

Pour utiliser memcache sous xampp pour windows, il faut charger le fichier dll là : http://downloads.php.net/pierre/ et la copier dans le répertoire xampp\php\ext.
Ensuite, dans le php.ini, ajouter la ligne :

extension=php_memcache.dll

Pour avoir un serveur memcache de test sous windows, vous pouvez charger la version compilée de memcached ici : http://code.jellycan.com/memcached/ ou ici : http://code.jellycan.com/memcached/.

Pour lancer le serveur memcache ponctuellement, il suffit d’executer le fichier « memcached.exe ».
Sinon, on peut l’installer en tant que service :

memcached.exe -d install

puis le lancer dans la console de gestion des services ou par la commande suivante :

memcached.exe -d start

Mais revenons un peu en arrière : à quoi sert un (des) serveur memcache ? Il permet de stocker des données, que ce soient des variables ou des pages entières dans la mémoire d’un serveur. Pour les sites à fort trafic, tout comme on peut répartir la charge sur plusieurs serveurs apache, on peut créer un « pool » de serveurs memcache. Memcache permet également de gérer les sessions.

Fonctionnement de php-memcache

Connexion aux serveurs

Si nous utilisons notre serveur de test avec un memcache sur le même serveur que notre apache, le code suivant est suffisant :

  1. $memcache = new Memcache;
  2. $memcache->addServer('localhost', 11211);

Télécharger

Si on veut répartir la charge entre différents serveurs, il faudra utiliser le code suivant :

  1. $memcache = new Memcache;
  2. $memcache->addServer('memcache_host', 11211);
  3. $memcache->addServer('memcache_host2', 11211);

Télécharger

La base : mettre des variables en cache

Intérêt : si on utilise le même serveur memcache pour plusieurs applications / sites qui tournent sur des serveurs différents, memcache va permettre de partager des données communes.

Ceci se fait avec la méthode « add » :

$memcache->add('Date', date('d/m/Y'), false, 300);

Cet exemple permet d’avoir la date en cache et de ne pas la calculer pendant cinq minutes.

Pour lire une valeur en cache, il suffit d’utiliser la méthode get.

  1. echo "memcache Date : ".$memcache->get('Date');

La méthode add ne permet pas de modifier la valeur d’une entrée en cache. C’est pour cela qu’existe la méthode « set ».

  1. $memcache->set('Date', date('d-m-Y'), false, 300);
  2. echo "<br />memcache Date mise à jour : ".$memcache->get('Date');

Télécharger

On peut utiliser la méthode « set » même si la valeur n’a pas été initialisée.

Memcache peut également être utilisé pour gérer les sessions.

L’intérêt par rapport à de simples cookies est d’améliorer la sécurité : rien n’est stocké en local chez l’utilisateur.

Pour activer les sessions memcache, il suffit de le définir comme gestionnaire de session. Ensuite, vous gérez vos sessions comme d’habitude. Voici le code nécessaire :

  1. $serveurMemcache = 'localhost';
  2. $portMemcache = 11211;
  3. $session_save_path = "tcp://{$serveurMemcache}:{$portMemcache}?persistent=1&weight=2&timeout=2&retry_interval=10";
  4. ini_set('session.save_handler', 'memcache');
  5. ini_set('session.save_path', $session_save_path);
  6. $_SESSION['MON_GESTIONNAIRE']='memcache';

Télécharger

Vous aurez accès à vos informations de session dans n’importe quelle page où vous aurez démarré votre session memcache.

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.