LXXIX. Fonctions Memcache

Introduction

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/.

Pré-requis

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.

Installation

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/.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Memcache Configuration Options

NameDefaultChangeableChangelog
memcache.allow_failover"1"PHP_INI_ALLAvailable since Memcache 2.0.2
memcache.chunk_size"8192"PHP_INI_ALLAvailable since Memcache 2.0.2
memcache.default_port"11211"PHP_INI_ALLAvailable since 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 boolean

Whether to transparently failover to other servers on errors.

memcache.chunk_size integer

Data will be transfered in chunks of this size, setting the value lower requires more network writes. Try increasing this value to 32768 if noticing otherwise inexplicable slowdowns.

memcache.default_port string

The default TCP port number to use when connecting to the memcached server if no other port is specified.

Types de ressources

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.

Constantes pré-définies

Tableau 2. Constantes MemCache

NomDescription
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().

Exemples

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.

Table des matières
Memcache::add -- Ajout d'un élément au serveur
Memcache::addServer -- Ajoute un serveur memcache à la liste de connexion
Memcache::close -- Ferme la connexion avec le serveur Memcache
Memcache::connect -- Ouvre une connexion avec le serveur Memcache
memcache_debug -- Active ou non l'affichage des informations de débogage
Memcache::decrement -- Décrémente la valeur d'un élément
Memcache::delete -- Efface un élément du serveur de cache
Memcache::flush -- Efface tous les éléments existant sur le serveur de cache
Memcache::get -- Récupère un élément du serveur de cache
Memcache::getExtendedStats -- Récupère des statistiques de tous les serveurs dans la liste
Memcache::getStats -- Lit les statistiques du serveur
Memcache::getVersion -- Retourne le numéro de version du serveur
Memcache::increment -- Incrément la valeur d'un élément
Memcache::pconnect -- Ouvre un connexion persistante à un serveur de cache
Memcache::replace -- Remplace une valeur d'un élément existant
Memcache::set -- Stocke des données dans le serveur de cache
Memcache::setCompressThreshold -- Active la compression automatique des valeurs larges