|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Copyright 1997-2012 PHP Documentation Group.
mysqlnd memcache плагин удобен. Этот быстрый запуск будет демонстрационные типичные примеры использования, и обеспечивать практический совет относительно начинания.
Строго рекомендуется считать ссылочные разделы в дополнение к быстрому запуску. Быстрый запуск пытается избежать обсуждать теоретические понятия и ограничения. Вместо этого это соединится со ссылочными разделами. Безопасно начаться с быстрого запуска. Однако, перед использованием плагина в миссии критические среды мы убеждаем Вас считать дополнительно вводную информацию из ссылочных разделов.
Copyright 1997-2012 PHP Documentation Group.
Плагин реализуется как расширение PHP. См. также инструкции по установке, чтобы установить это расширение.
Скомпилируйте или сконфигурируйте расширение MySQL PHP (API) (mysqli, PDO_MYSQL, mysql). То расширение должно пользоваться mysqlnd библиотекой как, потому что mysqlnd_memcache является плагином для mysqlnd библиотеки. Для дополнительной информации обратитесь к .
Затем, загрузите это расширение в PHP и активируйте плагин в конфигурационном файле PHP, используя конфигурационную директиву PHP, названную mysqlnd_memcache.enable.
Пример 21.393. Включение плагину (php.ini)
; On Windows the filename is php_mysqnd_memcache.dll; Load the extensionextension=mysqlnd_memcache.so; Enable itmysqlnd_memcache.enable=1
Следуйте инструкциям, данным в для сервера MySQL. Активируйте плагины и сконфигурируйте доступ Memcache для таблиц SQL.
Примеры в этом quickguide предполагают, что следующая таблица существует, и что Memcache конфигурируется с доступом к этому.
Пример 21.394. Таблица SQL используется для Быстрого запуска
CREATE TABLE test( id CHAR(16), f1 VARCHAR(255), f2 VARCHAR(255), f3 VARCHAR(255), flags INT NOT NULL, cas_column INT, expire_time_column INT, PRIMARY KEY(id) ) ENGINE=InnoDB;INSERT INTO test (id, f1, f2, f3) VALUES (1, 'Hello', 'World', '!');INSERT INTO test (id, f1, f2, f3) VALUES (2, 'Lady', 'and', 'the tramp');INSERT INTO innodb_memcache.containers( name, db_schema, db_table, key_columns, value_columns, flags, cas_column, expire_time_column, unique_idx_name_on_key)VALUES ( 'plugin_test', 'test', 'test', 'id', 'f1,f2,f3', 'flags', 'cas_column', 'expire_time_column', 'PRIMARY KEY');
Copyright 1997-2012 PHP Documentation Group.
После соединения соединения MySQL с использованием соединения Memcache плагин пытается прозрачно заменить SQL SELECT операторы memcache доступом. С этой целью плагин контролирует все
выполняемые SQL-операторы и пытается соответствовать строку оператора против MYSQLND_MEMCACHE_DEFAULT_REGEXP
. В случае соответствия mysqlnd memcache плагин проверяет ли SELECT получает
доступ только к столбцам отображенной таблицы и WHERE пункт ограничивается
единственным ключевым поиском.
В случае таблицы SQL в качестве примера плагин будет использовать интерфейс Memcache сервера MySQL, чтобы
выбрать результаты для SQL-запроса как SELECT f1, f2, f3 WHERE id = n.
Пример 21.395. Основной пример.
<?php$mysqli = new mysqli("host", "user", "passwd", "database");$memc = new Memcached();$memc->addServer("host", 11211);mysqlnd_memcache_set($mysqli, $memc);/* This is a query which queries table test using id as key in the WHERE part and is accessing fields f1, f2 and f3. Therefore, mysqlnd_memcache will intercept it and route it via memcache.*/$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");while ($row = $result->fetch_row()) { print_r($row);}/* This is a query which queries table test but using f1 in the WHERE clause. Therefore, mysqlnd_memcache can't intercept it. This will be executed using the MySQL protocol*/$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");while ($row = $result->fetch_row()) { print_r($row);}?>
Вышеупомянутый пример выведет:
array( [f1] => Hello [f2] => World [f3] => !)array( [id] => 2)