(PECL mysqlnd_memcache >= 1.0.0)
mysqlnd_memcache_get_config — Retourne les informations concernant la configuration du plugin
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.
Un tableau contenant les informations de configuration mysqlnd_memcache en cas
de succès, ou false
sinon.
Le tableau retourné contient trois éléments :
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. |
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.
|
fields | Un tableau avec le nom de tous les champs disponibles pour ce mappage. |
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" }