mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_setAsociar una conexión de MySQL con una conexión de Memcache

Descripción

mysqlnd_memcache_set ( mixed $mysql_connection [, Memcached $memcache_connection [, string $pattern [, callback $callback ]]] ) : bool

Asocia mysql_connection con memcache_connection empleando pattern como una expresión regular PCRE, y callback como una retrollamada de notificación o para desestablecer la asociación de mysql_connection.

Al tiempo que asocia una conexión de MySQL con una conexión de Memcache, esta función consultará al servidor de MySQL por su configuración. Detectará automáticamente si el servidor está configurado para utilizar el Complemento InnoDB Memcache Daemon o el soporte para Cluster NDB Memcache de MySQL. También consultará al servidor para identificar automáticamente tablas exportadas y otras opciones de configuración. El resultado de esta configuración automática se puede recuperar con mysqlnd_memcache_get_config().

Parámetros

mysql_connection

Un gestor a un Servidor de MySQL empleando una de las extensiones de la API de MySQL para PHP, las cuales son PDO_MYSQL, mysqli o ext/mysql.

memcache_connection

Una instancia de Memcached con una conexión al complemento Memcache Daemon de MySQL. Si se omite este parámetro, mysql_connection estará disociado de cualquier conexión de memcache. Y existe una asociación previa será reemplazada.

pattern

Una expresión regular con la sintaxis de Expresiones regulares compatibles con Perl empleada para identificar consultas de Memcache potenciales. La consulta debería tener tres subpatrones. El primer subpatrón contiene la lista de campos solicitados; el segundo, el nombre de la columna ID de la consulta; y el tercero, el valor solicitado. Si se omite este parámetro o se establece a NULL, se utilizará un patrón predeterminado.

callback

Una retrollamada que será empleada siempre que se comience el envío de una consulta a MySQL. La retrollamada recibirá un único parámetro de tipo boolean indicando si una consulta fue enviada mediante Memcache.

Valores devueltos

TRUE si la asociación o disociación tiene éxito, o de lo contrario FALSE si ocurrió un error.

Ejemplos

Ejemplo #1 Ejemplo de mysqlnd_memcache_set() con var_dump() como una retrollama de depuración simple.

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

/* Esta consulta será interceptada y ejecutada por el protocolo Memcache */
echo "Enviando la consulta para id mediante Memcache: ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");

/* f1 no está configurado como un campo de clave válido, por lo que esta no se enviará a Memcache */
echo "Enviando la consulta para f1 mediante Memcache: ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");

mysqlnd_memcache_set($mysqli);

/* Ahora se empleará el protocolo regular de MySQL */
echo "var_dump no será invocado: ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");

?>

El resultado del ejemplo sería:

Enviando la consulta para id mediante Memcache: bool(true)
Enviando la consulta para f1 mediante Memcache: bool(false)
var_dump no será invocado: 

Ver también