Spec-Zone .ru
спецификации, руководства, описания, API

22.9.10.7. Функции Mysqlnd_memcache

Copyright 1997-2012 PHP Documentation Group.

22.9.10.7.1. mysqlnd_memcache_get_config

Copyright 1997-2012 PHP Documentation Group.

  • mysqlnd_memcache_get_config

    Информация о возвратах о сменной конфигурации

Описание

array mysqlnd_memcache_get_config(mixed connection);

Эта функция возвращает массив всего mysqlnd_memcache связанная конфигурационная информация, которая присоединена к соединению MySQL. Это включает MySQL, объект Memcache, обеспеченный через mysqlnd_memcache_set, и табличная конфигурация отображения, которая была автоматически собрана у MySQL Server.

Параметры

connection

Дескриптор к MySQL Server, используя одно из расширений API MySQL для PHP, которые являются PDO_MYSQL, mysqli или ext/mysql.

Возвращаемые значения

Массив mysqlnd_memcache конфигурационной информации об успехе, иначе FALSE .

У возвращенного массива есть эти элементы:

Таблица 22.82. mysqlnd_memcache_get_configструктура массива

Ключ массива Описание
memcached Экземпляр Memcached связался к этому соединению MySQL mysqlnd_memcache_set. Можно использовать это, чтобы изменить настройки memcache соединения, или непосредственно запрашивая сервер на этом соединении.
образец Регулярное выражение PCRE, используемое, чтобы соответствовать SQL-запрос, отправленный серверу. Запросы, соответствующие этот образец, будут далее проанализированы, чтобы решить, может ли запрос быть прерван и отправлен через интерфейс memcache или отправляется ли запрос, используя общий протокол MySQL для сервера. Образец является любой образцом значения по умолчанию (MYSQLND_MEMCACHE_DEFAULT_REGEXP) или это устанавливается через mysqlnd_memcache_set.
отображения Ассоциативный массив со списком всех сконфигурированных контейнеров, поскольку они были обнаружены этим плагином. Ключ для этих элементов является именем контейнера в конфигурации MySQL. Значение описывается ниже. Содержание этого поля создается, запрашивая MySQL Server во время ассоциации к MySQL и memcache использованию соединения mysqlnd_memcache_set.
mapping_query SQL-запрос, используемый во время mysqlnd_memcache_set идентифицировать доступные контейнеры и отображения. Результат того запроса обеспечивается в mappingselement.

Примеры

Пример 22.396. 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));?>    

Вышеупомянутый пример выведет:

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

См. Также

mysqlnd_memcache_set

22.9.10.7.2. mysqlnd_memcache_set

Copyright 1997-2012 PHP Documentation Group.

  • mysqlnd_memcache_set

    Свяжите соединение MySQL с соединением Memcache

Описание

bool mysqlnd_memcache_set(mixed mysql_connection,
Memcached memcache_connection,
string pattern,
callback callback);

Партнер mysql_connection с memcache_connection использование pattern как регулярное выражение PCRE, и callback как обратный вызов уведомления или сбрасывать ассоциацию mysql_connection.

Связывая соединение MySQL с соединением Memcache, эта функция запросит MySQL Server для своей конфигурации. Это автоматически обнаружит, конфигурируется ли сервер, чтобы использовать InnoDB Плагин Демона Memcache или поддержка MySQL Cluster NDB Memcache. Это также запросит сервер, чтобы автоматически идентифицировать экспортируемые таблицы и другие параметры конфигурации. Результаты этой автоматической конфигурации могут быть получены, используя mysqlnd_memcache_get_config.

Параметры

mysql_connection

Дескриптор к MySQL Server, используя одно из расширений API MySQL для PHP, которые являются PDO_MYSQL, mysqli или ext/mysql.

memcache_connection

Экземпляр Memcached с соединением с плагином MySQL Memcache Daemon. Если этот параметр опускается, то mysql_connection будет несвязано от любого memcache соединения. И если предыдущая ассоциация будет существовать, то она будет заменена.

pattern

Регулярное выражение в Perl Совместимый синтаксис Регулярного выражения, используемый, чтобы идентифицировать потенциальные Memcache-запросы. У запроса должно быть три sub образца. Первый подобразец содержит требуемый cписок полей, второе имя столбца ID от запроса и третьего требуемое значение. Если этот параметр опускается или набор рта к NULL , тогда образец значения по умолчанию будет использоваться.

callback

Обратный вызов, который будет использоваться всякий раз, когда запрос отправляется MySQL. Обратный вызов получит единственный булев параметр, говорящий, был ли запрос отправлен через Memcache.

Возвращаемые значения

TRUE если ассоциация или разъединение успешны, иначе FALSE если есть ошибка.

Примеры

Пример 22.397. mysqlnd_memcache_set пример с var_dumpкак простой обратный вызов отладки.

<?php$mysqli = new mysqli("host", "user", "passwd", "database");$memc = new Memcached();$memc->addServer("host", 11211);mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump');/* This query will be intercepted and executed via Memcache protocol */echo "Sending query for id via Memcache: ";$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");/* f1 is not configured as valid key field, this won't be sent via Memcache */echo "Sending query for f1 via Memcache: ";$mysqli->query("SELECT id FROM test WHERE f1 = 1");mysqlnd_memcache_set($mysqli);/* Now the regular MySQL protocol will be used */echo "var_dump won't be invoked: ";$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");?>    

Вышеупомянутый пример выведет:

Sending query for id via Memcache: bool(true)Sending query for f1 via Memcache: bool(false)var_dump won't be invoked: 

См. Также

mysqlnd_memcache_get_config