3

Cakephp で開発したサイトがあります。クエリをキャッシュしたい。私はドキュメントを読みましたが、bootstrap.phpこれには次のものがあります。

Cache::config('default', array('engine' => 'File'));

Cache::config('short', array(
    'engine' => 'File',
    'duration' => '+1 hours',
    'path' => CACHE,
    'prefix' => 'cake_short_'
));

// long
Cache::config('long', array(
    'engine' => 'File',
    'duration' => '+1 week',
    'probability' => 100,
    'path' => CACHE . 'long' . DS,
));

クエリを保存するコントローラーは次のとおりです。

public function test_view () {
    $product_general = Cache::read('product_general_query', 'longterm');
        if (!$product_general) {
            echo("test");
            $product_general = $this->Product->query('SELECT DISTINCT * FROM products');
            Cache::write('product_general_query', $product_general, 'longterm');
        }

        $this->set('product_general', $product_general);
}

ページに入力するたびに、キャッシュにクエリが見つからないため、「テスト」と表示されます。問題はどこだ?私は何かを見逃していますか?

4

1 に答える 1

3

'long'core.php 内でキャッシュ構成に名前を付けましたが'longterm'、アクション内で構成を使用しています

また、デバッグを有効にしている場合 (たとえば、core.conf で debug を 1 または 2 に設定)、キャッシュ期間が自動的に 10 秒に設定される場合があります。これが独自のキャッシュ定義にも適用されるかどうかはわかりませんが

于 2013-02-26T21:47:46.840 に答える