Redisがキャッシュバックエンドとして構成されている場合、キャッシュがファイルシステムに保存されるのはなぜですか?


7

私のMage::getSingleton('core/cache')->save()コントローラー内でへの呼び出しを使用しておりvar/cache/、Redisがキャッシュバックエンドとして構成されていても、キャッシュされた値をファイルシステム()に保存しています。Magentoの他のすべてのキャッシュは適切にRedisに保存されています。

次にsave()呼び出しを示します。

Mage::getSingleton('core/cache')->save($imageUrl, $cacheKey, array(Mage_Core_Model_Config::CACHE_TAG));

ここに私がありapp/etc/local.xmlます:

<cache>
    <backend>Cm_Cache_Backend_Redis</backend>
    <backend_options>
        <server>redis11.i</server>
        <port>6379</port>
        <database>2</database>
        <password></password>
        <persistent>cache-db2</persistent>
        <force_standalone>0</force_standalone>
        <connect_retries>1</connect_retries>
        <automatic_cleaning_factor>0</automatic_cleaning_factor>
        <compress_data>1</compress_data>
        <compress_tags>1</compress_tags>
        <compress_threshold>20480</compress_threshold>
        <compression_lib>gzip</compression_lib>
    </backend_options>
</cache>

キャッシュされた値をRedisではなくファイルシステムに保存するのはなぜですか?


github.com/colinmollenhour/Cm_Cache_Backend_Redis/…にも同じ問題がいくつかありますが、どれも非常に有用な答えを提供していないようです:(
David Manners

デービッドに感謝-知っておきたい!あなたは今、この問題を自分で経験していますか?
kalenjordan 2014

ええ、実際にはキャッシュフォルダーはありませんが、空のフォルダーです。
David Manners

回答:


5

キャッシュを取得するには、キャッシュをgetCache()メソッドで初期化し、これをキャッシュオブジェクトに設定することでMage :: app()-> getCache()-> save()を使用する必要があります。これは、私が見る限り、デフォルトのキャッシュモデルに戻ります。

簡単なテストを行いました:

Mage::getSingleton('core/cache')->save(now(), 'time123', array(Mage_Core_Model_Config::CACHE_TAG)); 

AND

Mage::app()->getCache()->save(now(), 'time12345', array(Mage_Core_Model_Config::CACHE_TAG));

詳細情報:

Mage_Core_Model_App :: _ initCacheは実際には以下を使用してキャッシュオブジェクトを設定します。

$this->_cache = Mage::getModel('core/cache', $options);

つまり、コアキャッシュオブジェクトは、シングルトンとして使用するためにレジストリに追加されません。シングルトンとして初めて呼び出すと、新しいコアキャッシュオブジェクトが作成され、オプションなしでコンストラクターが呼び出されます。


1
うわー、今は少し羊がかった感じです。うまくいきました!ありがとう!
kalenjordan 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.