Dans Magento EE 1.12.0.0 Il semblerait que peu importe les modifications de configuration que j'apporte app/etc/local.xml
, le cache de fichiers par défaut continue d'être utilisé (ce qui est attesté par un var/cache/
remplissage permanent).
Attente
- Memcached est utilisé comme fast_backend.
- La base de données est utilisée comme slow_backend.
- Le cache de fichiers n'est pas utilisé du tout (c'est-à-dire qu'il
var/cache/
doit toujours être vide).
Sortie réelle
- Memcached est utilisé comme fast_backend.
- La base de données n'est pas utilisée du tout.
- Le cache de fichiers est utilisé.
Procédure de test
- Modifiez la configuration en
app/etc/local.xml
. - Redémarrez Memcached et Apache (juste pour faire bonne mesure et c'est sur ma boîte de développement locale donc je peux aussi bien).
- Vider le cache de fichiers (
rm -rf var/cache/*
). - Actualisez la page d'accueil.
- Vérifiez le contenu du cache de fichiers (
ls var/cache
). - Devenez attristé et revenez au n ° 1 avec un changement de configuration différent.
La config
Le contenu de mon app/etc/local.xml
est le suivant:
<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>
Réponses:
Je pense que ce n'est pas le bon format pour les nœuds de cache. Ma compréhension est que tous les paramètres de cache doivent être imbriqués dans le
<cache>
nœud. Donc, pour utiliser le cache à deux niveaux avec la base de données memcached +, ce serait quelque chose comme ceci:Gardez à l'esprit qu'il
<full_page_cache>
peut être configuré exactement de la même manière et peut utiliser différents paramètres si vous le souhaitez. Ce ne sont que deux instances de cache distinctes.Juste comme note latérale, je recommanderais fortement d' utiliser Redis à la place. Il prend en charge les balises, il peut donc être utilisé comme cache à un niveau et il fonctionnera beaucoup mieux que la base de données memcached + à deux niveaux.
la source
<full_page_cache>
possible de remplirvar/cache
? C'est ma compréhension qu'il utilise à la placevar/full_page_cache
. J'ai également essayé d'utiliser le même<cache>...</cache>
(votre style) pour<full_page_cache>
et enenterprise.xml
vain. En ce qui concerne Redis, malheureusement, l'utilisation du backend DB est la condition requise.<cache>...<servers>...<server1>...</server1>
. Est -ce le1
dansserver1
important?<servers>
. Vous pouvez utiliser foo, bar, baz aussi facilement que server1, server2, server3. Vous avez raison, cettefull_page_cache
instance obtient son propre sous-répertoirevar
si elle utilise des fichiers.