mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_setAssocie une connexion MySQL avec une connexion Memcache

Description

bool mysqlnd_memcache_set ( mixed $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

LoadingChargement en cours