Le module Memcache fournit une interface procédurale maniable
ainsi qu'orientée objet à Memcache, un démon fortement efficace dans
la gestion du cache, qui est principalement destiné Ã faire baisser la charge des bases
de données dans les applications web dynamiques.
Plus d'informations concernant Memcache peuvent être
consultées sur http://www.danga.com/memcached/.
Ce module utilise les fonctions de la bibliothèque zlib
pour supporter la compression des données à la volée. Zlib est donc requis pour installer
ce module.
PHP 4.3.3 ou supérieur est requis pour utiliser l'extension Memcache.
Cette extension PECL
n'est pas intégrée à PHP.
Des informations sur l'installation de ces extensions PECL
peuvent être trouvées dans le chapitre du manuel intitulé Installation
des extensions PECL. D'autres informations comme les notes sur les nouvelles
versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs
ainsi qu'un CHANGELOG, peuvent être trouvées ici :
http://pecl.php.net/package/memcache.
Pour utiliser ces fonctions, vous devez compiler PHP avec le support MemCache
en utilisant l'option de configuration
--enable-memcache[=DIR].
Les utilisateurs de Windows doivent activer la bibliothèque
php_memcache.dll dans le php.ini
pour pouvoir utiliser ces fonctions.
Vous pouvez télécharger ces bibliothèques
DLL pour ces extensions PECL
depuis la page de téléchargement de PHP
sous sur la page http://snaps.php.net/.
Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
Tableau 1. Options de configuration Memcache
| Nom | Défaut | Modifiable | Changelog |
|---|
| memcache.allow_failover | "1" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2 |
| memcache.chunk_size | "8192" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2 |
| memcache.default_port | "11211" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2 |
Pour plus de détails sur les constantes PHP_INI_*,
reportez-vous Ã
Annexe G.
Voici un éclaircissement sur
l'utilisation des directives de configuration.
- memcache.allow_failover
booléen
Si l'on doit basculer sur d'autres serveurs en cas d'erreur.
- memcache.chunk_size
entier
Les données doivent être transférées en morceaux de cette taille ;
Configurer cette valeur à une petite valeur provoque plus d'écritures
sur le réseau. Essayez d'augmenter cette valeur à 32768 si vous
rencontrez des ralentissements inexplicables.
- memcache.default_port
chaîne de caractères
Le numéro du port TCP par défaut à utiliser lors de la connexion
au serveur memcache si aucun autre port n'est spécifié.
Il n'y a qu'une seule ressource utilisée par le module Memcache :
c'est le lien identifiant représentant la connexion du serveur de cache.
Tableau 2. Constantes MemCache
| Nom | Description |
|---|
|
MEMCACHE_COMPRESSED
(entier)
|
Utilisée pour activer à la volée la compression des données avec les fonctions
Memcache::set(),
Memcache::add() et
Memcache::replace().
|
Exemple 1. Exemple avec l'extension Memcache
<?php
$memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Connexion impossible");
$version = $memcache->getVersion(); echo "Version du serveur : ".$version."<br />\n";
$tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Echec de la sauvegarde des données sur le serveur"); echo "Les données ont été stockées dans le cache (les données expireront dans 10 secondes)<br />\n";
$get_result = $memcache->get('key'); echo "Données depuis le cache :<br />\n";
var_dump($get_result);
?>
|
|
Dans l'exemple ci-dessus, un objet est sauvegardé dans le cache et ensuite, affiché.
Les objets ainsi que les autres types non-scalaires sont linéarisés avant d'être
sauvegardé ; il est donc impossible d'y stocker des ressources
(i.e. identifiant de connexion et autres) dans le cache.