Uso

Después de asociar una conexión de MySQL con una conexión de Memcache utilizando mysqnd_memcache_set(), el complemento intentará reemplazar de forma transparente las sentencias SELECT de SQL por un acceso a memcache. Para este propósito, el complemento monitoriza todas las sentencias SQL ejecutadas e intenta hacer coincidir el string de la sentencia con MYSQLND_MEMCACHE_DEFAULT_REGEXP. En caso de coincidir, el complemento de memcache para mysqlnd comprueba si la SELECT está accediendo solamente a columnas de una tabla de correspondencias y la cláusula WHERE está limitada a una búsqueda de clave única.

En el caso de la tabla tabla SQL de ejemplo, el complemento usrá la intefaz de Memcache del servidor de MySQL para obtener los resultados de una consulta SQL como SELECT f1, f2, f3 WHERE id = n.

Ejemplo #1 Ejemplo básico

<?php
$mysqli 
= new mysqli("host""usuario""contraseña""base_de_datos");
$memc = new Memcached();
$memc->addServer("host"11211);
mysqlnd_memcache_set($mysqli$memc);

/*
   Esta es una consulta a la tabla test que emplea id como clave de la cláusula WHERE
   y que accede a los campos f1, f2 y f3. Por tanto, mysqlnd_memcache
   la interceptará y la redirigirá mediante memcache.
*/
$resultado $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while (
$fila $resultado->fetch_row()) {
    
print_r($fila);
}

/*
   Esta es una consulta a la tabla test pero empleando f1 en la cláusula WHERE.
   Por tanto, mysqlnd_memcache no la interceptará. Se ejecutará
   empleando el protocolo de MySQL.
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while (
$fila $resultado->fetch_row()) {
    
print_r($fila);
}
?>

El resultado del ejemplo sería:

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