ホームページ  >  記事  >  バックエンド開発  >  Yii CFileCache が値を取得できない原因の分析

Yii CFileCache が値を取得できない原因の分析

不言
不言オリジナル
2018-06-22 11:26:051394ブラウズ

この記事では、Yii CFileCache が値を取得できない原因の分析を主に紹介します。非常に優れており、必要な友人は参考にしてください。

設定ファイルに設定しました。

‘cache'=>array(
‘class'=>'system.caching.CFileCache',
),

#コントローラに設定します

return array(
array(
‘COutputCache+pro',
‘duration'=>86400,
‘varyByParam'=>array(‘id'),
),

#次にデータベースを開きます

'schemaCachingDuration'= >3600,

初めて使用したとき、キャッシュ ファイルがあり、アクセスが大幅に高速化されたことがわかりました

しかし、時間が経つにつれて、しばらく経った後、おそらく 10 分後、ランタイム/キャッシュの下にあるキャッシュ ファイルが突然消えていることに気付きました。

以前、長い間追跡していた理由がわかりません。この問題を発見しました。

キャッシュ ディレクトリ 0a に他のフォルダーがあることもわかりました。d6 63 3a 名の目的がわかりません。

キャッシュ ファイルが突然削除される理由オンライン待機中に消えますか?

D ディスク データ領域のキャッシュ ファイルが非常に大きいです

1. Yii のバッファリングを main.php で設定する必要があります。

#

/****************/
‘cache' => array (
‘class' => ‘system.caching.CFileCache'
)

#設定が完了したら、コントローラーで設定するだけです... .

Yii::app ()->cache->set($key,$value,$expire);
Yii::app ()->cache->get($key);

2. 複数のキャッシュを設定します

#main.php 設定

#

‘cache' => array (
‘class' => ‘system.caching.CFileCache'
),
‘dbcache' => array (
‘class' => ‘system.caching.CDbCache'
)

コントローラーで必要なのは次のとおりです。対応するキャッシュ ID を使用して呼び出すことができます。

例:

Yii::app ()->dbcache

3. ページのキャッシュとは、ページ全体を静的にすることを意味します。

main.php 構成は同じです

Controller: COutputCache クラスをクラス内のコントローラーの 1 つである動作フィルターとして使用できます。

public function filters() {
return array (
array (
‘COutputCache',
‘duration' => 600,
‘ varyByParam' => array(‘id')
)
);
}

COutputCache は、データをキャッシュするときにキー名を自動的に生成する戦略として使用されます。使用できるもののリストは次のとおりです。

varyByRoute: このオプションを true に設定すると、特定のリクエストのルーティング部分が、キャッシュ データを生成するための別の識別子の一部として使用されます。したがって、リクエスト コントローラーとアクションを組み合わせて使用​​して、キャッシュされたコンテンツを区別できます。

varyBySession: このオプションを true に設定すると、キャッシュ内のコンテンツを区別するために一意のセッション ID が使用されます。各ユーザーのセッションは異なりますが、キャッシュを提供するために使用できます。

varyByParam: 前述したように、入力 GET のパラメーターはキャッシュの内容を区別するために使用されます。

varyByExpression: このオプションに PHP 式を設定すると、キャッシュされたコンテンツを区別するために、対応する式の結果を使用できます。

また、COutputCache のデフォルトのキャッシュ ID は、cache

であることにも注意してください。 4. フラグメント キャッシュ

フラグメント キャッシュは、ページの一部をキャッシュするために使用されます。ビュー スクリプトでフラグメント キャッシュを使用できます。これを行うには、CController::beginCache() メソッドと CController::endCache() メソッドを使用します。

…some HTML content…
<?php if($this—>beginCache($key))?>
…content to be cached…
<?php $this—>endCache(); ?>
…other HTML content…

以上がこの記事の全内容です。その他の関連内容については、PHP に注目してください。中国語のサイトです!

関連する推奨事項:

ブートストラップ ページング スタイルを使用する yii について

PHP での ID 設定が設定された後の不連続性について増分 原因分析と解決策

以上がYii CFileCache が値を取得できない原因の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。