В Magento EE 1.12.0.0 может показаться, что независимо от того, какие изменения в конфигурации я делаю app/etc/local.xml
, файловый кеш по умолчанию продолжает использоваться (о чем свидетельствует var/cache/
всегда заполнение).
ожидание
- Memcached используется как fast_backend.
- База данных используется как slow_backend.
- Файловый кеш вообще не используется (т.е.
var/cache/
всегда должен быть пустым).
Фактический вывод
- Memcached используется как fast_backend.
- База данных не используется вообще.
- Файловый кеш используется.
Процедура тестирования
- Измените конфигурацию на
app/etc/local.xml
. - Перезапустите Memcached и Apache (просто для хорошей меры, и он на моем локальном устройстве разработчика, так что я могу также).
- Очистить кэш файлов (
rm -rf var/cache/*
). - Обновите домашнюю страницу.
- Проверьте содержимое файлового кэша (
ls var/cache
). - Огорчайтесь и возвращайтесь к # 1 с другим изменением конфигурации.
Конфиг
Содержание моего app/etc/local.xml
выглядит следующим образом:
<config>
<global>
<install>
<date><![CDATA[{{actual_data}}]]></date>
</install>
<crypt>
<key><![CDATA[{{actual_data}}]]></key>
</crypt>
<disable_local_modules>false</disable_local_modules>
<resources>
<db>
<table_prefix><![CDATA[]]></table_prefix>
</db>
<default_setup>
<connection>
<host><![CDATA[{{actual_data}}]]></host>
<username><![CDATA[{{actual_data}}]]></username>
<password><![CDATA[{{actual_data}}]]></password>
<dbname><![CDATA[{{actual_data}}]]></dbname>
<initStatements><![CDATA[SET NAMES utf8]]></initStatements>
<model><![CDATA[mysql4]]></model>
<type><![CDATA[pdo_mysql]]></type>
<pdoType><![CDATA[]]></pdoType>
<active>1</active>
</connection>
</default_setup>
</resources>
<session_save><![CDATA[db]]></session_save>
<cache>memcached</cache>
<slow_backend>database</slow_backend>
<slow_backend_store_data>1</slow_backend_store_data>
<memcached>
<servers>
<server>
<host><![CDATA[{{actual_data}}]]></host>
<port><![CDATA[{{actual_data}}]]></port>
<persistent><![CDATA[0]]></persistent>
<weight><![CDATA[2]]></weight>
<timeout><![CDATA[10]]></timeout>
<retry_interval><![CDATA[10]]></retry_interval>
<status><![CDATA[]]></status>
</server>
</servers>
<compression><![CDATA[0]]></compression>
<cache_dir><![CDATA[]]></cache_dir>
<hashed_directory_level><![CDATA[]]></hashed_directory_level>
<hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
<file_name_prefix><![CDATA[]]></file_name_prefix>
</memcached>
</global>
<admin>
<routers>
<adminhtml>
<args>
<frontName><![CDATA[admin]]></frontName>
</args>
</adminhtml>
</routers>
</admin>
</config>
Ответы:
Я думаю, что это не правильный формат для узлов кэша. Насколько я понимаю, все параметры кэша должны быть вложены в
<cache>
узел. Поэтому для использования двухуровневого кэша с базой данных memcached + это будет примерно так:Имейте в виду, что
<full_page_cache>
можно настроить точно так же и использовать другие настройки, если хотите. Это просто два отдельных экземпляра кеша.Как примечание, я бы настоятельно рекомендовал вместо этого использовать Redis . Он поддерживает теги, поэтому его можно использовать как одноуровневый кеш, и он будет работать намного лучше, чем двухуровневая база данных memcached +.
источник
<full_page_cache>
возможно заполнениеvar/cache
? Я понимаю, что вместо этого он используетvar/full_page_cache
. Я также пытался использовать то же самое<cache>...</cache>
(ваш стиль) для<full_page_cache>
иenterprise.xml
безрезультатно. Что касается Redis, то, к сожалению, использование базы данных БД является обязательным требованием.<cache>...<servers>...<server1>...</server1>
. Является ли1
вserver1
важный?<servers>
. Вы можете использовать foo, bar, baz так же легко, как server1, server2, server3. Вы правы, чтоfull_page_cache
экземпляр получает свой собственный подкаталог,var
если он использует файлы.