Объясните систему кэширования Magento - PullRequest
11 голосов
/ 14 февраля 2012

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

Ответы [ 2 ]

14 голосов
/ 15 февраля 2012

Подробнее об этом можно прочитать здесь: 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

и для полной загрузки страницы:

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

По этой ссылке:

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

Контроль кэша

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

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

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

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

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

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

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

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

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

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

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

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

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

6 голосов
/ 15 февраля 2012

Вы можете кэшировать блок в 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...