mysqlnd_memcache_get_config

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_get_configRetourne les informations concernant la configuration du plugin

Description

array mysqlnd_memcache_get_config ( mixed $connection )

Cette fonction retourne un tableau contenant les informations relatives à mysqlnd_memcache attaché à la connexion MySQL. Ceci inclut MySQL, l'objet Memcache fourni via la fonction mysqlnd_memcache_set(), et la configuration de la table de mapping qui a été collectée automatiquement depuis le serveur MySQL.

Liste de paramètres

connection

Un gestionnaire de connexion au serveur MySQL, utilisant une des extensions MySQL API de PHP, pouvant être PDO_MYSQL, mysqli ou ext/mysql.

Valeurs de retour

Un tableau contenant les informations de configuration mysqlnd_memcache en cas de succès, ou FALSE sinon.

Le tableau retourné contient trois éléments :

Structure du tableau retourné par mysqlnd_memcache_get_config()
Clé du tableau Description
memcached Une instance Memcache associée à la connexion MySQL par mysqlnd_memcache_set(). Vous pouvez l'utiliser pour modifier la configuration de la connexion Memcache, ou directement, en requétant le serveur sur cette connexion.
pattern L'expression rationnelle PCRE utilisée pour faire correspondre la requête SQL envoyée au serveur. Les requêtes correspondantes à ce masque seront par la suite analysées afin de décider si la requête doit être interceptée et envoyée via l'interface memcache ou si elle doit être envoyée en utilisant le protocole général MySQL au serveur. Le masque est soit le masque par défaut (MYSQLND_MEMCACHE_DEFAULT_REGEXP) ou celui définit via la fonction mysqlnd_memcache_set().
mappings Un tableau associatif contenant une liste de tous les conteneurs configurés, tels qu'ils sont découverts par ce plugin. La clé pour ces éléments sera le nom du conteneur tel que présent dans la configuration MySQL. La valeur est décrite ci-dessous. Le contenu de ce champ est créé en interrogeant le serveur MySQL lors de l'association de la connexion MySQL et de la connexion Memcache, en utilisant la fonction mysqlnd_memcache_set().
mapping_query Une requête SQL utilisée lors de l'appel à la fonction mysqlnd_memcache_set() pour identifier les conteneurs et les mappings disponibles. Le résultat de cette requête est fournie dans l'élément de mappings.
Mappage de la structure d'entrée
Clé du tableau Description
prefix Un préfixe utilisé lors de l'accès aux données via memcache. Avec le plugin MySQL InnoDB Memcache Deamon, il commence habituellement par @@ et termine avec un séparateur configurable. Le préfixe est placé au début de la valeur de la clé lors de l'utilisation du protocole memcache.
schema_name Nom du shéma (base de données) qui contient la table à accéder.
table_name Nom de la table qui contient les données accessibles via le protocole memcache.
id_field_name Nom du champ de la base de données (colonne) avec l'ID utilisé comme clé lors de l'accès à la table via memcache. Y compris si le champ de la base de données a une clé primaire.
separator Le séparateur utilisé pour couper les différentes valeurs du champ. Il est nécessaire sachant que memcache ne permet l'accès qu'à une seule donnée, alors que MySQL peut mapper plusieurs colonnes à cette valeur.

Note:

Le séparateur, qui peut être défini dans la configuration du serveur MySQL, ne doit faire parti d'aucune valeur récupérée via memcache, sinon un mappage correct ne peut être garanti.

fields Un tableau avec le nom de tous les champs disponibles pour ce mappage.

Exemples

Exemple #1 Exemple avec mysqlnd_memcache_get_config()

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

var_dump(mysqlnd_memcache_get_config($mysqli));
?>

L'exemple ci-dessus va afficher :

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"
}

Voir aussi

LoadingChargement en cours