Объясните систему кэширования Magento

Может ли кто-нибудь объяснить систему Magento Caching и как работает модуль кэша в Magento?

Ответ 1

Подробнее об этом читайте здесь: http://www.magentocommerce.com/wiki/modules_reference/english/mage_adminhtml/system_cache/index

или http://docs.magento.com/m1/ce/user_guide/system-operations/cache-management.html?Highlight=system%20cache

и для полной страницы cahing:

http://docs.magento.com/m1/ce/user_guide/system-operations/cache-page-external.html?Highlight=system%20cache

Из этой ссылки:

Этот экран позволит вам управлять настройками кеша для разных внутренних аспектов Magento. Для доступа к экрану управления кэшем (System > Cache Management)

Управление кешем

В этом полевом наборе представлены флажки, которые, если флажок установлен, будет включать кеш для каждого аспекта, как описано ниже.

При разработке, то есть изменении файлов или базы данных напрямую, отключите весь кеш, чтобы избежать поведения undefined.

После обновления, установки или удаления обновления, обновите все Кэш.

Во время перемещения Magento на другой сервер, кешированный файл config.xml и local.xml вызывают проблемы и фактически заблокировали вас из панель администратора. Найдите /app/etc/use _cache.ser и переименуйте его, чтобы убить всех кэширование вручную и принудительная перезагрузка этих файлов.

All Cache Это поле выбора является удобной функцией для применения действия для всех флажков.

Без изменений - никаких действий не будет предпринято, что повлияет на все аспекты. Обновить - весь кеш будет очищен, но все включенные аспекты будут остаются включенными. Отключить - отключить весь кеш. Включить - включить все Кэш.

В настоящее время кэширование выполняется главным образом в основном компоненте.

  • Конфигурация Здесь мы кэшируем объединенные файлы config.xml из приложения /etc/, все модули и пользовательскую конфигурацию сохраняются в базе данных.

  • Макеты Компилировать обновления макетов из файлов app/design/[package]/[theme]/layout/*. Xml в кеш файлы для каждой страницы

  • Блокирует вывод HTML Каждый блок можно кэшировать, задав cache_lifetime и cache_key. Это может включать довольно сложную логику, чтобы избежать несоответствий представлениям между различными блоками. В настоящее время кешируется только верхний блок навигации администратора.

  • Типы и атрибуты EAV EAV (модель значения атрибута объекта) требует, чтобы конфигурация загружалась из базы данных. Чтобы ускорить инициализацию, мы кэшируем эту конфигурацию.

  • Переводы

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

Вы можете играть с setCacheLifetime и setCacheKey для блоков, отображающих данные о продукте, и посмотреть, как это работает для вас.

Ответ 2

Вы можете кэшировать блок в magento, переписывая кучу методов.

protected function _construct()
    {
        $this->addData(array(
            'cache_lifetime'    => 900,
            'cache_tags'        => array(Mage_Catalog_Model_Product::CACHE_TAG),
            'cache_key'            => $this->getCacheKey()
        ));
        // cache_lifetime=> time to cached the block
        // cache_tags=> type of the cache
        // cache_key => the key of the cache
    } 

public function getCacheKey()
    {

    }
...

Я рекомендую вам увидеть блок, например, в ядре. Например: Mage_Poll_Block_Poll

позже вы должны включить профайлер и посмотреть, кэширован ли блок или нет. Вы можете увидеть дополнительную информацию в этой ссылке http://inchoo.net/ecommerce/magento/magento-block-caching/