mysqlnd_memcache_set
(PECL mysqlnd_memcache >= 1.0.0)
mysqlnd_memcache_set — Associe une connexion MySQL avec une connexion Memcache
Description
$mysql_connection
[, Memcached $memcache_connection
[, string $pattern
[, callback $callback
]]] )
Associe une connexion mysql_connection
avec une connexion
memcache_connection
en utilisant le paramètre
pattern
comme expression rationnelle PCRE, et le paramètre
callback
comme notification de rappel, ou pour réinitialiser
l'association de la connexion mysql_connection
.
Lors de l'association d'une connexion MySQL avec une connexion Memcache, cette fonction va interroger le serveur MySQL pour en connaître sa configuration. Elle va ainsi automatiquement détecter si le serveur est configuré pour utiliser le plugin InnoDB Memcache Daemon, ou le support MySQL Cluster NDB Memcache. Elle va également interroger le serveur afin d'identifier automatiquement les tables exportées, ainsi que d'autres options de configuration. Le résultat de cette configuration automatique peut être récupéré en utilisant la fonction mysqlnd_memcache_get_config().
Liste de paramètres
-
mysql_connection
-
Un gestionnaire de serveur MySQL, en utilisant une des extensions API MySQL de PHP, qui sont PDO_MYSQL, mysqli ou ext/mysql.
-
memcache_connection
-
Une instance Memcached avec une connexion au plugin MySQL Memcache Daemon. Si ce paramètre est omis, alors
mysql_connection
sera dé-associée de toute connexion memcache. Et si une précédente association existait, alors elle sera remplacée. -
pattern
-
Une expression rationnelle au format PCRE pour identifier les requêtes potentielles Memcache. La requête doit avoir trois sous-masques. Le premier contient la liste des champs demandés, le second, le nom de la colonne ID depuis la requête, et le troisième, la valeur demandée. Si ce paramètre est omis, ou défini à
NULL
, alors un masque par défaut sera utilisé. -
callback
-
Une fonction de rappel qui sera utilisée à chaque fois que la requête est envoyée à MySQL. Elle ne reçoit qu'un seul paramètre, un booléen, indiquant si la requête a été envoyée via Memcache.
Valeurs de retour
TRUE
si l'association ou la dé-association a été un succès, ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple avec mysqlnd_memcache_set() et var_dump() comme fonction de rappel de déboguage.
<?php $mysqli = new mysqli("host", "user", "passwd", "database"); $memc = new Memcached(); $memc->addServer("host", 11211); mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump'); /* Cette requête sera interceptée et exécutée via le protocole Memcache */ echo "Envoi de la requête pour l'ID via Memcache : "; $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1"); /* f1 n'est pas configuré comme une clé de champ valide, cette requête ne sera pas envoyée via Memcache */ echo "Envoi de la requête pour f1 via Memcache : "; $mysqli->query("SELECT id FROM test WHERE f1 = 1"); mysqlnd_memcache_set($mysqli); /* Maintenant, le protocole régulier MySQL sera utilisé */ echo "var_dump ne sera pas appelé : "; $mysqli->query("SELECT f1, f2, f3 WHERE id = 1"); ?>
L'exemple ci-dessus va afficher :
Envoi de la requête pour l'ID via Memcache: bool(true) Envoi de la requête pour f1 via Memcache: bool(false) var_dump ne sera pas appelé :
Voir aussi
- mysqlnd_memcache_get_config() - Retourne les informations concernant la configuration du plugin