Magento EE 1.12でファイルの代わりにデータベースをslow_backendとして使用する方法は?


14

Magento EE 1.12.0.0 app/etc/local.xmlでは、どのような構成変更を行っても、デフォルトのファイルキャッシュが引き続き使用されているように見えます(var/cache/常に満たされていることから明らかです)。

期待

  • Memcachedはfast_backendとして使用されます。
  • データベースはslow_backendとして使用されます。
  • ファイルキャッシュはまったく使用されません(つまり、var/cache/常に空にする必要があります)。

実際の出力

  • Memcachedはfast_backendとして使用されます。
  • データベースはまったく使用されません。
  • ファイルキャッシュが使用されています。

試験手順

  1. 構成を変更しapp/etc/local.xmlます。
  2. MemcachedとApacheを再起動します(適切な手段として、ローカルの開発ボックスにあるため、同様にできます)。
  3. ファイルキャッシュをクリアします(rm -rf var/cache/*)。
  4. ホームページを更新します。
  5. ファイルキャッシュの内容を確認します(ls var/cache)。
  6. 悲しくなり、別の設定変更で#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>


この問題の解決策を見つけることができませんでした。1.それ:私は別の会社の採用の下に追加のMagentoのプロジェクトに取り組んで、ここで説明したものと同様の構成を使用していたので、持っているようしかし、私はそれがのいずれかで問題があったと信じるように傾いていますインストールのMagentoの(悪いです変更/モジュール/など)2. Drupalからの適応が不十分なサーバー用の会社のプロビジョニングスクリプトといくつかの事項が見落とされた3.神の行為/自然4.(ほとんどの場合)Magento Google社員を助けて、彼は賞を獲得します!
-Robr3rd

回答:


5

これはキャッシュノードに適した形式ではないと思います。私の理解では、すべてのキャッシュ設定は<cache>ノード内にネストする必要があります。したがって、memcached +データベースで2レベルキャッシュを使用するには、次のようになります。

<cache>
    <backend>memcached</backend>
    <slow_backend>database</slow_backend>
    <memcached>
        <servers>
            <server1>
                <host>...</host>
                <port>11211</port>
                <persistent>1</persistent>
                <weight>2</weight>
                <timeout>10</timeout>
                <retry_interval>10</retry_interval>
                <status/>
            </server1>
            ...
        </servers>
        <compression>0</compression>
        <cache_dir/>
        <hashed_directory_level/>
        <hashed_directory_umask/>
        <file_name_prefix/>
    </memcached>
</cache>

念頭に置いてベア<full_page_cache>まったく同じように設定することができ、必要に応じて異なる設定を使用することができます。これらは、2つの別個のキャッシュインスタンスです。

補足として、代わりにRedisを使用することを強くお勧めます。タグをサポートしているため、単一レベルのキャッシュとして使用でき、2レベルのmemcached +データベースよりもはるかに優れたパフォーマンスを発揮します。


3
次に、Redisの支持を表明します。dbの遅いバックエンドは、役立つよりも多くの害をもたらします。
-philwinkle

私もその構成を試してみました(実際に私が始めたものです-上記が機能していなかったので、私が投稿したものが代替として提案されました)。う<full_page_cache>、おそらく充填しますかvar/cache?代わりにを使用することは私の理解ですvar/full_page_cache。また、同じ<cache>...</cache>(あなたのスタイル)を使用してみ<full_page_cache>ましたenterprise.xmlが、役に立ちませんでした。Redisに関する限り、残念ながらDBバックエンドを使用することが要件です。
-Robr3rd

私はちょうどあなたが持っていることに気づいた<cache>...<servers>...<server1>...</server1>。ある1中でserver1重要な?
-Robr3rd

@RobertRobinson-いいえ、複数のノードを定義する方法を除いてまったく重要ではありません<servers>。foo、bar、bazは、server1、server2、server3と同じくらい簡単に使用できます。full_page_cacheインスタンスがvarファイルを使用している場合、インスタンスは独自のサブディレクトリを取得するのは正しいです。
fantasticrice

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.