mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_setСвязать соединение MySQL с соединением Memcache

Описание

mysqlnd_memcache_set ( mixed $mysql_connection , Memcached $memcache_connection = ? , string $pattern = ? , callable $callback = ? ) : bool

Связывает mysql_connection с memcache_connection, используя шаблон pattern как регулярное выражение PCRE и callback в качестве callback-функции для оповещения, или разрывает связь с mysql_connection.

Во время связывания соединения MySQL с соединением Memcache, эта функция запросит у сервера MySQL его конфигурацию. Это позволяет автоматически определить, сконфигурирован ли сервер с поддержкой плагина InnoDB Memcache Daemon или поддержкой MySQL Cluster NDB Memcache. Также сервер будет запрошен на предмет автоматической идентификации экспортированных таблиц и прочих настроек. Результаты автоматической настройки можно посмотреть с помощью mysqlnd_memcache_get_config().

Список параметров

mysql_connection

Соединение MySQL с помощью одного из модулей MySQL API для PHP: PDO_MYSQL, mysqli или ext/mysql.

memcache_connection

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

pattern

Регулярное выражение PCRE (Perl Compatible Regular Expression) для идентификации потенциальных запросов к Memcache. Запрос должен иметь три подшаблона. Первый подшаблон содержит список запрошенных полей, второй содержит ID столбца из запроса, а третий - запрошенное значение. Если параметр опущен или установлен как null, то будет использован шаблон по умолчанию.

callback

Callback-функция, которая будет запущена при отправке запроса к MySQL. Эта функция принимает один параметр типа bool, который определяет, был ли запрос отправлен с через Memcache.

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

true, если связывание или разрыв связи прошли успешно. false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqlnd_memcache_set() с var_dump() в качестве отладочной callback-функции.

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

/* Этот запрос будет перехвачен и запущен через протокол Memcache */
echo "Запрос с полем id через Memcache: ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");

/* f1 не сконфигурирован как корректный ключ поля, так что послать это через Memcache нельзя */
echo "Запрос  с полем f1 через Memcache: ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");

mysqlnd_memcache_set($mysqli);

/* Теперь будет использован обычный протокол MySQL */
echo "var_dump не будет вызван: ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");

?>

Результат выполнения данного примера:

Запрос с полем id через Memcache: bool(true)
Запрос  с полем f1 через Memcache: bool(false)
var_dump не будет вызван: 

Смотрите также