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 » https://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 : » https://pecl.php.net/package/memcache.
Pour utiliser ces fonctions, vous devez compiler PHP avec le support MemCache en utilisant l'option de compilation --enable-memcache[=DIR]. Vous pouvez, optionnellement, désactiver le support du gestionnaire de session memcache en spécifiant l'option de compilation --disable-memcache-session.
Les utilisateurs de Windows doivent activer la bibliothèque php_memcache.dll dans le php.ini pour pouvoir utiliser ces fonctions. La bibliothèque DLL pour cette extension PECL peut être téléchargée depuis, soit la page de » téléchargement PHP, soit depuis » https://pecl4win.php.net/
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Défaut | Modifiable | Changelog |
---|---|---|---|
memcache.allow_failover | "1" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2 |
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Disponible depuis Memcache 2.1.0 |
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 |
session.save_handler | PHP_INI_ALL | Disponible depuis Memcache 2.1.2 | |
session.save_path | PHP_INI_ALL | Disponible depuis Memcache 2.1.2 |
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.max_failover_attempts entier
-
Définit combien de serveurs à essayer lorsque l'on fixe ou récupère des données. Utilisez seulement en conjonction avec memcache.allow_failover.
- 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é.
- session.save_handler chaîne de caractères
-
Utilisez memcache comme gestionnaire de session en définissant cette valeur à memcache.
- session.save_path chaîne de caractères
-
Définit les URLs serveur, séparées par une virgule, à utiliser pour le stockage des sessions, par exemple : "tcp://host1:11211, tcp://host2:11211".
Chaque URL peut contenir des paramètres qui seront appliqués au serveur, de la même façon que pour la méthode Memcache::addServer(). Par exemple : "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
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
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(). |
Exemples
Example#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 of Contents
- 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::getServerStatus — Retourne le statut du serveur
- 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
- Memcache::setServerParams — Modifit les paramètres et les statuts du serveur pendant l'exécution