En Magento EE 1.12.0.0, parece que no importa a qué cambios de configuración realice app/etc/local.xml
, la caché de archivos predeterminada se sigue utilizando (lo que se evidencia al var/cache/
llenar siempre).
Expectativa
- Memcached se usa como fast_backend.
- La base de datos se usa como slow_backend.
- La memoria caché de archivos no se utiliza en absoluto (es decir
var/cache/
, siempre debe estar vacía).
Salida real
- Memcached se usa como fast_backend.
- La base de datos no se utiliza en absoluto.
- Se está utilizando el caché de archivos.
Procedimiento de prueba
- Haga el cambio de configuración a
app/etc/local.xml
. - Reinicie Memcached y Apache (solo por si acaso y está en mi caja de desarrollo local para que yo también pueda).
- Borre la caché del archivo (
rm -rf var/cache/*
). - Actualiza la página de inicio.
- Verifique el contenido del archivo caché (
ls var/cache
). - Entristecerse y volver al # 1 con un cambio de configuración diferente.
La configuración
El contenido de mi app/etc/local.xml
es el siguiente:
<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>
Respuestas:
Creo que ese no es el formato correcto para los nodos de caché. Entiendo que todas las configuraciones de caché deben estar anidadas dentro del
<cache>
nodo. Entonces, para usar caché de dos niveles con base de datos memcached + sería algo como esto:Tenga en cuenta que
<full_page_cache>
puede configurarse exactamente de la misma manera y puede usar diferentes configuraciones si lo desea. Son solo dos instancias de caché separadas.Así como una nota al margen, yo altamente recomendar el uso de Redis lugar. Admite etiquetas, por lo que se puede usar como caché de un solo nivel y funcionará mucho mejor que la base de datos memcached + de dos niveles.
fuente
<full_page_cache>
podría estar llenandovar/cache
? Tengo entendido que en su lugar utilizavar/full_page_cache
. También he intentado usar el mismo<cache>...</cache>
(su estilo) por<full_page_cache>
y enenterprise.xml
vano. En lo que respecta a Redis, desafortunadamente se requiere usar el backend DB.<cache>...<servers>...<server1>...</server1>
. ¿Es importante el1
enserver1
?<servers>
. Puede usar foo, bar, baz tan fácilmente como server1, server2, server3. Tiene razón en que lafull_page_cache
instancia obtiene su propio subdirectoriovar
si está usando archivos.