Accueil > Programmation > PHP > Utiliser l’extension PHP memcache sous windows.
Utiliser l’extension PHP memcache sous windows.
lundi 30 janvier 2012, par
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 :
- $memcache = new Memcache;
- $memcache->addServer('localhost', 11211);
Si on veut répartir la charge entre différents serveurs, il faudra utiliser le code suivant :
- $memcache = new Memcache;
- $memcache->addServer('memcache_host', 11211);
- $memcache->addServer('memcache_host2', 11211);
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.
- 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 ».
- echo "<br />memcache Date mise à jour : ".$memcache->get('Date');
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 :
- $serveurMemcache = 'localhost';
- $portMemcache = 11211;
- $session_save_path = "tcp://{$serveurMemcache}:{$portMemcache}?persistent=1&weight=2&timeout=2&retry_interval=10";
- $_SESSION['MON_GESTIONNAIRE']='memcache';
Vous aurez accès à vos informations de session dans n’importe quelle page où vous aurez démarré votre session memcache.