Spec-Zone .ru
спецификации, руководства, описания, API
|
При использовании memcached, чтобы кэшировать данные MySQL, Ваше приложение должно получить данные от базы данных и загрузить соответствующие пары ключ/значение в кэш. Затем, последующие поиски могут быть сделаны непосредственно от кэша.
Поскольку у MySQL есть свои собственные механизмы кэширования в памяти для запрашиваемых данных, такой как InnoDB
пул
буферов и кэш запроса MySQL, ищите возможности вне загрузки отдельных значений столбцов или строк в кэш.
Предпочтите кэшировать составные значения, такие как полученные от многократных таблиц до запроса соединения,
или наборов результатов, собранных от многократных строк.
Ограничьте информацию в кэше к нечувствительным данным, потому что нет никакой безопасности, требуемой получить доступ или обновить информацию в пределах memcached экземпляра. У любого с доступом к машине есть возможность считать, просмотреть и потенциально обновить информацию. Чтобы сохранить данные безопасными, зашифруйте информацию прежде, чем кэшировать это. Чтобы ограничить пользователей, способных к соединению с сервером, или отключить сетевой доступ, или, используют IPTables или подобные методы, чтобы ограничить доступ к memcached портам к избранному набору узлов.
Можно представить memcached
к существующему приложению, даже если кэширование не
было частью оригинального проекта. На многих языках и средах изменения к приложению будут только несколькими
строками, сначала чтобы попытаться читать из кэша, загружая данные, отступить к старому методу, если информация
не будет кэшироваться, и обновить кэш с информацией, как только данные были считаны.
Общая последовательность для того, чтобы использовать memcached на любом языке как кэширующееся решение для MySQL следующие:
Запросите элемент от кэша.
Если элемент существует, используйте данные элемента.
Если элемент не существует, загружает данные из MySQL, и хранит значение в кэш. Это означает, что значение доступно следующему клиенту, который запрашивает это от кэша.
Для блок-схемы этой последовательности см. рисунок 15.8, "Типичная memcached Блок-схема Приложения".
Самый прямой способ кэшировать данные MySQL состоит в том, чтобы использовать таблицу на 2 столбца, где первый столбец является первичным ключом. Из-за требований уникальности для memcached ключей удостоверьтесь, что Ваша схема базы данных делает соответствующее использование первичных ключей и ограничений на уникальность данных.
Если Вы комбинируете многократные значения столбцов в единственное memcached значение элемента, выбираете типы данных, чтобы облегчить анализировать значение назад в его компоненты, например при использовании символа разделителя между числовыми значениями.
Запросы, которые отображаются наиболее легко на memcached поиски,
являются теми с синглом WHERE
пункт, используя =
или
IN
оператор. Для сложного WHERE
пункты, или те,
которые используют операторы такой как <
, >
,
BETWEEN
, или LIKE
, memcached
не обеспечивает простой или эффективный способ отсканировать через или фильтровать ключи или присваиваемые
значения, так обычно Вы выполняете те операции как SQL-запросы на базовой базе данных.