Di Magento EE 1.12.0.0 Tampaknya tidak peduli perubahan konfigurasi apa yang saya buat app/etc/local.xml
, cache file default terus digunakan (yang dibuktikan dengan var/cache/
selalu mengisi).
Harapan
- Memcached digunakan sebagai fast_backend.
- Database digunakan sebagai slow_backend.
- Cache file tidak digunakan sama sekali (yaitu
var/cache/
harus selalu kosong).
Output Aktual
- Memcached digunakan sebagai fast_backend.
- Basis data tidak digunakan sama sekali.
- Cache file sedang digunakan.
Prosedur Pengujian
- Ubah konfigurasi menjadi
app/etc/local.xml
. - Restart Memcached dan Apache (hanya untuk ukuran yang baik dan itu ada di kotak dev lokal saya jadi saya mungkin juga).
- Bersihkan cache file (
rm -rf var/cache/*
). - Perbarui halaman beranda.
- Periksa isi cache file (
ls var/cache
). - Menjadi sedih dan kembali ke # 1 dengan perubahan konfigurasi yang berbeda.
Konfigurasi
Isi saya app/etc/local.xml
adalah sebagai berikut:
<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>
Jawaban:
Saya pikir itu bukan format yang tepat untuk node cache. Pemahaman saya adalah bahwa semua pengaturan cache harus bersarang di dalam
<cache>
node. Jadi untuk menggunakan cache dua tingkat dengan memcached + database akan menjadi seperti ini:Ingatlah bahwa
<full_page_cache>
dapat dikonfigurasikan dengan cara yang persis sama dan dapat menggunakan pengaturan yang berbeda jika diinginkan. Mereka hanya dua contoh cache yang terpisah.Sama seperti catatan tambahan, saya akan sangat merekomendasikan menggunakan Redis sebagai gantinya. Ini mendukung tag, sehingga dapat digunakan sebagai cache level tunggal dan itu akan melakukan jauh lebih baik daripada memcached + database dua tingkat.
sumber
<full_page_cache>
mungkin mengisivar/cache
? Ini pemahaman saya yang justru digunakanvar/full_page_cache
. Saya juga mencoba menggunakan<cache>...</cache>
(gaya Anda) yang sama untuk<full_page_cache>
danenterprise.xml
tidak berhasil. Sejauh Redis pergi, sayangnya menggunakan backend DB adalah persyaratan.<cache>...<servers>...<server1>...</server1>
. Adalah1
diserver1
penting?<servers>
. Anda dapat menggunakan foo, bar, baz semudah server1, server2, server3. Anda benar bahwafull_page_cache
instance mendapatkan subdirektori sendiri di bawahvar
jika menggunakan file.