Будет ли кэширование в файлах альтернативой?


Когда-то я работал в компании, у которой была собственная CMS, и мы использовали кэширование данных в файлах, поэтому в основном система проверяла, существует ли файл кэша, если нет, она отправлялась в базу данных, получала данные, сохраняла их в файле, а затем показывала пользователям (базовая вещь с кэшем). Это привело к уменьшению числа подключений к базе данных.

Я хотел бы знать, является ли это хорошим вариантом для Drupal или есть какие-либо проблемы с этим способом кэширования.

 6
Author: kiamlaluno, 2011-03-04

3 answers

Как упоминал аншауунг, вы можете использовать Повышение для создания статического кэша страниц. Boost скопирует весь HTML-код страницы и сохранит этот HTML-код в виде статического файла на диске в определенном каталоге. Набор правил перезаписи заставит веб-сервер сначала искать статический HTML-файл для каждого запроса и обслуживать этот файл, если он найден. Если это не так, обычный запрос Drupal выполняется через PHP. Запросы, обрабатываемые через статический файл, будут очень быстрыми, но PHP и база данных полностью обойден.

Boost не заменяет серверную часть кэша, и Drupal по-прежнему будет использовать таблицы кэша в базе данных, когда произойдет ошибка в статических HTML-файлах, созданных Boost. Если вы хотите полностью заменить серверную часть кэша, вы можете заглянуть в memcache, в котором хранятся сериализованные объекты в памяти. Memcached работает как демон на сервере и может быть подключен через TCP. Это может быть как хорошо, так и плохо, в зависимости от количества серверов в окружающей среде и

Обратите внимание, что база данных также может хранить таблицы кэша в памяти (по крайней мере, с MySQL), хотя я не уверен в особенностях этого.

Вы все можете использовать модуль APC, если вы используете Drupal 7. Модули APC интегрируются с кэшем кода операции APC и используют его в качестве серверной части кэша Drupal. APC может быть быстрее, чем memcached в определенных сценариях, потому что нет накладных расходов на TCP-соединение. Каждый кэш APC привязан к определенный сервер, в то время как memcached и база данных могут совместно использоваться несколькими серверами переднего плана (опять же, это может быть хорошо или плохо).

 14
Author: CalebD, 2011-03-04 15:15:18

На самом деле, Boost модуль делает именно то, что вы описываете - он создает файловые кэши страниц и повторно проверяет базу данных, если определенный файл не существует.

Взгляните на это:)

 7
Author: anschauung, 2011-03-04 13:16:36

Хотя модуль Boost выполняет тот же метод, существует множество альтернатив, которые могут работать еще лучше, таких как кэш страниц Drupal (который кэширует всю страницу в одну запись базы данных), memcache или даже лак.

 2
Author: Mikey P, 2011-03-06 08:32:06