mysqlnd_memcache_get_config

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_get_configDevuelve información acerca de la configuración del complemento

Descripción

mysqlnd_memcache_get_config ( mixed $connection ) : array

Esta función devuelve un array con toda la información de configuración relacionada con mysqlnd_memcache que ha sido adjuntada a la conexión de MySQL. Esto incluye a MySQL, el objeto Memcache proporcionado por mysqlnd_memcache_set(), y la configuración de la correspondencia de tablas que fue recogida de forma automática desde el servidor de MySQL.

Parámetros

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.

Valores devueltos

Un array con información de la configuración de mysqlnd_memcache en caso de éxito, de lo contrario, FALSE.

El array devuelto contiene estos elementos:

Estructura del array de mysqlnd_memcache_get_config()
Clave del array Descripción
memcached Una instancia de Memcached asociada a esta conexión de MySQL mediante mysqlnd_memcache_set(). Se puede emplear esta clave para cambiar los ajustes de la conexión de memcache, o directamente consultando al servdor sobre esta conexión.
pattern La expresión regular PCRE empleada para hacer coincidir la consulta SQL enviada al servidor. Las consultas que coincidan con este patrón serán analizadas para decidri si la consulta puede ser interceptada y enviada mediante la interfaz de memcache o si la consulta se envía al servidor empleado el protocolo general de MySQL. El patrón puede ser el patrón predeterminado (MYSQLND_MEMCACHE_DEFAULT_REGEXP) o el establecido por mysqlnd_memcache_set().
mappings Un array asociativo con una lista de todos los contenedores configurados tal y como fueron descubiertos por este comlemento. La clave para esto elementos es el nombre del contenedor de la configuración de MySQL. El valor está descrito más abajo. El contenido de este campo se crea consultando al Servidor de MySQL durante la asociación de MySQL y una conexión de memcache empleando mysqlnd_memcache_set().
mapping_query Una consulta SQL empleada durante mysqlnd_memcache_set() para identificar los contenedores disponibles y correspondecias. El resultado de esta consulta está provisto en el elemento de correspondencia.
Estructura de entradas de correspondencia
Clave del array Descripción
prefix Un prefijo empleado mientras se accede a datos mediante memcache. Con el complemento InnoDB Memcache Deamon de MySQL, este normalmente comienza con @@ y termina con un separador configurable. Este prefijo se coloca delante del valor de la clave mientras se utiliza el protocolo memcache.
schema_name Nombre del esquema (base de datos) que contiene la tabla a acceder.
table_name Nombre de la tabla que contiene los datos accesibles mediante el protocolo memcache.
id_field_name Nombre del campo (columna) de la base de datos con el id empleado como clave al acceder a la tabla mediante memcache. A menudo este es el campo de la base de datos que tiene la clave primaria.
separator El separador empeado para dividir los diferentes valores de campos. Es necesario debido a que memcache solamente provee acceso a un único valor, mientras que MySQL puede hacer corresponder varias columnas a este valor.

Nota:

El separador, el cual se puede establecer en la configuración del Servidor de MySQL, no debería ser parte de ningún valor recuperado mediante memcache, ya que no se puede garantizar la correspondecia apropiada.

fields Un array con el nombre de todos los campo disponibles para esta correspondencia.

Ejemplos

Ejemplo #1 Ejemplo de mysqlnd_memcache_get_config()

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

var_dump(mysqlnd_memcache_get_config($mysqli));
?>

El resultado del ejemplo sería:

array(4) {
  ["memcached"]=>
  object(Memcached)#2 (0) {
  }
  ["pattern"]=>
  string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is"
  ["mappings"]=>
  array(1) {
    ["mymem_test"]=>
    array(6) {
      ["prefix"]=>
      string(13) "@@mymem_test."
      ["schema_name"]=>
      string(4) "test"
      ["table_name"]=>
      string(10) "mymem_test"
      ["id_field_name"]=>
      string(2) "id"
      ["separator"]=>
      string(1) "|"
      ["fields"]=>
      array(3) {
        [0]=>
        string(2) "f1"
        [1]=>
        string(2) "f2"
        [2]=>
        string(2) "f3"
      }
    }
  }
  ["mapping_query"]=>
  string(209) "    SELECT c.name,
                          CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix, 
                          c.db_schema, 
                          c.db_table, 
                          c.key_columns, 
                          c.value_columns, 
                          (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep 
                     FROM innodb_memcache.containers c"
}

Ver también