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

14.2.9.3. Начинание с InnoDB Плагин Memcached

Этот раздел описывает шаги, чтобы активироваться InnoDB / интеграция memcached на MySQL Server. Поскольку memcached демон тесно интегрируется с MySQL Server, чтобы избежать сетевого трафика и минимизировать задержку, Вы выполняете этот процесс на каждом экземпляре MySQL, который использует эту функцию.

Отметить

Перед установкой интерфейса memcached для любых данных консультируйтесь с Разделом 14.2.9.4, "Соображения безопасности для InnoDB memcached Плагин", чтобы понять меры безопасности должны были предотвратить любой несанкционированный доступ.

14.2.9.3.1. Предпосылки для InnoDB memcached Плагин

Прежде, чем Вы установите плагин непосредственно, и внутренние таблицы использование, проверьте, что у Вашего сервера есть необходимое необходимое как условие программное обеспечение.

Поддержка платформы

В настоящий момент memcached Плагин Демона только поддерживается на Linux, Солярисе, и платформах OS X.

Предпосылки программного обеспечения

Вы должны иметь libevent установленный, так как это требуется memcached. Способ получить эту библиотеку отличается, если Вы используете установщик MySQL или создаете из источника, как описано в следующих разделах.

Используя MySQL Installation Package

Когда Вы используете установщик MySQL, libevent библиотека не включается. Используйте определенный метод для своей операционной системы, чтобы загрузить и установить libevent 1.4.3 или позже: например, в зависимости от операционной системы, Вы могли бы использовать команду apt-get, yum, или port install.

Библиотеки для memcached и InnoDB плагин для memcached помещается в правильное место установщиком MySQL. Для типичной работы, файлов lib/plugin/libmemcached.so и lib/plugin/innodb_engine.so используются.

Здание из Источника

Для краткого введения на шагах установки см. файл README-innodb_memcached в исходном распределении. Это - более подробное объяснение той процедуры.

Если у Вас есть выпуск исходного кода, то есть a libevent 1.4.3 включенный в пакет.

  1. Пойдите в каталог plugin/innodb_memcached/libevent.

  2. Дайте следующие команды, чтобы создать и установить libevent библиотека:

    autoconf./configuremakemake install

После libevent устанавливается, создайте сервер MySQL с -DWITH_INNODB_MEMCACHED=ON.

Исходный код для InnoDBПлагин-memcached находится в plugin/innodb_memcached каталог. Создание MySQL Server с -DWITH_INNODB_MEMCACHED=ON генерирует две совместно используемых библиотеки в этом каталоге.

  • libmemcached.so: memcached плагин демона к MySQL.

  • innodb_engine.so: InnoDB Плагин API к memcached.

Поместите эти две совместно используемых библиотеки в каталог плагина MySQL. Чтобы найти каталог плагина MySQL, дайте следующую команду:

mysql> select @@plugin_dir;+-----------------------------------------------+| @@plugin_dir                                  |+-----------------------------------------------+| /Users/cirrus/sandbox-setup/5.6.10/lib/plugin/ |+-----------------------------------------------+1 row in set (0.00 sec)
Устанавливание Пределов Операционной системы

memcached демон может иногда заставлять сервер MySQL превышать предел ОС на числе открытых файлов. Вы, возможно, должны были бы выполнить ulimit команду, чтобы увеличить предел, и затем запустить сервер MySQL с той же самой оболочки. См. Раздел 14.2.9.8, "Диагностируя InnoDB memcached Плагин" для шагов, чтобы решить этот вопрос.

14.2.9.3.2. Установка и Конфигурирование InnoDB memcached Плагин

Установка Необходимых Таблиц

Сконфигурировать memcached плагин, таким образом, это может взаимодействовать InnoDB таблицы, выполненные сценарий конфигурации scripts/innodb_memcached_config.sql устанавливать необходимые таблицы, используемые негласно:

mysql: source MYSQL_HOME/share/innodb_memcached_config.sql

Это - одноразовая работа. Таблицы остаются на месте, если Вы позже отключаете и повторно включаете поддержке memcached. Для получения информации о расположении и цели этих таблиц, см. Раздел 14.2.9.7, "Внутренности InnoDB memcached Плагин".

Установка Плагина Демона

Чтобы активировать плагин демона, используйте install plugin оператор, так же, как, устанавливая любой другой плагин MySQL:

mysql> install plugin daemon_memcached soname "libmemcached.so";

Как только плагин устанавливается этот путь, он автоматически активируется каждый раз, когда сервер MySQL загружается или перезапускается.

Отключение Плагина Демона

Делая существенные изменения к сменной конфигурации, Вы, возможно, должны были бы выключить плагин. Чтобы сделать так, сделайте следующее заявление:

mysql> uninstall plugin daemon_memcached;

Чтобы повторно включить этому, выпустите предыдущее install plugin оператор снова. Все предыдущие параметры конфигурации, внутренние таблицы, и данные сохраняются, когда плагин возвращается этот путь.

Определение memcached Параметры конфигурации

Если у Вас есть какие-либо memcached определенные параметры конфигурации, определите их на mysqld командной строке или введите их в конфигурационный файл MySQL, закодированный в параметре daemon_memcached_option Параметр конфигурации MySQL. memcached параметры конфигурации вступают в силу, когда плагин устанавливается, который Вы делаете каждый раз, когда сервер MySQL запускается.

Например, чтобы заставить memcached слушать на порту 11222 вместо порта значения по умолчанию 11211, добавить -p11222 к параметру конфигурации MySQL daemon_memcached_option:

mysqld .... --loose-daemon_memcached_option="-p11222"

Можно добавить другие memcached параметры командной строки к daemon_memcached_option строка. Другие параметры конфигурации:

  • daemon_memcached_engine_lib_name (значение по умолчанию innodb_engine.so)

  • daemon_memcached_engine_lib_path (НУЛЬ значения по умолчанию, представляя сменный каталог).

  • daemon_memcached_r_batch_size, пакетный размер фиксации для операций чтения (get). Это определяет после, сколько memcached операций чтения система автоматически делает фиксацию. По умолчанию это устанавливается в 1 так, чтобы каждый get запрос может получить доступ к очень последним фиксировавшим данным в InnoDB таблица, были ли данные обновлены через memcached или SQL. Когда его значение больше чем 1, счетчик для операций чтения постепенно увеличивается однажды для каждого get вызвать. flush_all вызовите сбросы оба счетчики записи и чтение.

  • daemon_memcached_w_batch_size, пакетная фиксация для любых операций записи (set, replace, append, prepend, incr, decr, и так далее) По умолчанию, это устанавливается как 1, так, чтобы никакие незафиксированные данные не были потеряны в случае отключения электричества, и любые SQL-запросы на базовой таблице могут получить доступ к очень последним данным. Когда его значение больше чем 1, счетчик для операций записи постепенно увеличивается однажды для каждого add, set, incr, decr, и delete вызвать. flush_all вызовите сбросы оба счетчики записи и чтение.

По умолчанию Вы ничего не должны изменить с первыми двумя параметрами конфигурации. Те опции позволяют Вам загружать любой другой механизм хранения для memcached (такого как NDB memcached механизм).

Снова, пожалуйста, отметьте, что у Вас будут эти параметры конфигурации в Вашем конфигурационном файле MySQL, или MySQL загружают командную строку. Они вступают в силу, когда Вы загружаете memcached плагин.

Сводка

Теперь у Вас есть все установленное. Можно непосредственно взаимодействовать с таблицами InnoDB через интерфейс memcached. Чтобы проверить, что функция работает должным образом, см. Раздел 14.2.9.3.3, "Проверяя InnoDB и Установку memcached".

14.2.9.3.3. Проверка InnoDB и Установки memcached

Теперь, когда все устанавливается, можно экспериментировать с InnoDB и memcached комбинацией:

Вот пример, используя Unix, Linux, или командный процессор OS X:

# Point memcached-related commands at the memcached attached to the mysqld process.export MEMCACHED_SERVERS=127.0.0.1:11211# Store the contents of a modestly sized text file in memcached, with the data passed# to MySQL and stored in a table. The key is the basename of the file, 'mime.types'.memcp /etc/apache2/mime.types# Retrieve the data we just stored, from the memory cache.memcat mime.types

Вот пример, используя telnet, чтобы отправить memcached команды и получить результаты через протокол ASCII:

telnet 127.0.0.1 11211set a11 10 0 9123456789STOREDget
            a11VALUE a11 0 9123456789ENDquit

Чтобы доказать, что весь одинаковый данные хранились в MySQL, соединитесь с сервером MySQL и проблемой:

mysql> select * from test.demo_test;

Теперь, завершите работу сервера MySQL, который также отключает интегрированный memcached сервер. Дальнейшие попытки получить доступ к memcached данным теперь перестали работать с ошибкой соединения. Обычно, memcached данные исчезли бы в этой точке, и Вы запишете логику приложения, чтобы загрузить данные назад в память, когда memcached был перезапущен. Но MySQL / memcached интеграция автоматизирует этот процесс:

  • Перезапустите сервер MySQL.

  • Работайте install plugin оператор, чтобы запуститься daemon_memcached плагин снова.

  • Теперь любые memcat команды или get операции еще раз возвращают пары ключ/значение, которые Вы сохранили в ранее memcached сеанс. Когда ключ требуют, и присваиваемое значение уже не находится в кэш-памяти, это автоматически запрашивается от таблицы MySQL по умолчанию test.demo_test.