Utilisation

Après association d'une connexion MySQL avec une connexion Memcache en utilisant la fonction mysqnd_memcache_set(), le plugin tente de remplacer de façon transparente les requêtes SQL de type SELECT par un accès memcache. Dans ce but, le plugin surveille toutes les requêtes SQL exécutées et tente de faire correspondre chaque chaîne de requête avec l'expression rationnelle MYSQLND_MEMCACHE_DEFAULT_REGEXP. Dans le cas d'une correspondance, le plugin mysqlnd memcache vérifie si la requête SELECT tente d'accéder qu'à des colonnes d'une table mappée et la clause WHERE se limite à une seule clé de recherche.

Dans le cas de la table SQL d'exemple, le plugin utilisera l'interface Memcache du serveur MySQL pour récupérer les résultats pour une requête SQL comme : SELECT f1, f2, f3 WHERE id = n.

Exemple #1 Exemple simple

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

/* Requête de la table test en utilisant l'ID comme clé dans la clause
   WHERE et accès des champs f1, f2 et f3. Toutefois, mysqlnd_memcache
   va l'intercepter et l'envoyer via memcache.
*/
$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while ($row = $result->fetch_row()) {
	print_r($row);
}
/* Requête de la table test mais en utilisant f1 dans la clause WHERE.
   Toutefois, mysqlnd_memcache ne peut pas l'intercepter. Elle sera exécutée
   en utilisant le protocole MySQL
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while ($row = $result->fetch_row()) {
	print_r($row);
}
?>

L'exemple ci-dessus va afficher :

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)

LoadingChargement en cours