In Magento EE 1.12.0.0 scheint es so zu sein app/etc/local.xml
, dass der Standard- Dateicache weiterhin verwendet wird, egal an welcher Konfiguration ich Änderungen vornehme var/cache/
.
Erwartung
- Memcached wird als fast_backend verwendet.
- Die Datenbank wird als slow_backend verwendet.
- Der Dateicache wird überhaupt nicht verwendet (
var/cache/
sollte also immer leer sein).
Tatsächliche Ausgabe
- Memcached wird als fast_backend verwendet.
- Die Datenbank wird überhaupt nicht verwendet.
- Der Dateicache wird verwendet.
Testverfahren
- Nehmen Sie die Konfigurationsänderung zu vor
app/etc/local.xml
. - Starten Sie Memcached und Apache neu.
- Leeren Sie den Dateicache (
rm -rf var/cache/*
). - Aktualisieren Sie die Homepage.
- Überprüfen Sie den Inhalt des Dateicaches (
ls var/cache
). - Sei traurig und kehre mit einer anderen Konfigurationsänderung zu # 1 zurück.
Die Konfig
Der Inhalt von my app/etc/local.xml
ist wie folgt:
<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>
Antworten:
Ich denke, das ist nicht das richtige Format für die Cache-Knoten. Mein Verständnis ist, dass alle Cache-Einstellungen innerhalb des
<cache>
Knotens verschachtelt sein sollten . Wenn Sie also einen zweistufigen Cache mit memcached + database verwenden möchten, wäre das ungefähr so:Denken Sie daran, dass Sie
<full_page_cache>
genau so konfigurieren und auf Wunsch auch andere Einstellungen vornehmen können. Sie sind nur zwei separate Cache-Instanzen.So wie eine Randnotiz, würde ich sehr empfehlen mit Redis statt. Es unterstützt Tags, kann also als einstufiger Cache verwendet werden und ist wesentlich leistungsfähiger als eine + zweispeicherige Datenbank.
quelle
<full_page_cache>
evtl. füllendvar/cache
? Es ist mein Verständnis, dass es stattdessen verwendetvar/full_page_cache
. Ich habe auch versucht, dasselbe<cache>...</cache>
(deinen Stil) für<full_page_cache>
undenterprise.xml
ohne Erfolg zu verwenden. Für Redis ist leider die Verwendung des DB-Backends Voraussetzung.<cache>...<servers>...<server1>...</server1>
. Ist das1
in soserver1
wichtig?<servers>
. Sie könnten foo, bar, baz genauso einfach verwenden wie server1, server2, server3. Sie haben Recht, dass diesefull_page_cache
Instanz ein eigenes Unterverzeichnis erhält,var
wenn sie Dateien verwendet.