ホームページ >バックエンド開発 >PHPチュートリアル >Yii CFileCache が値を取得できない問題を解決

Yii CFileCache が値を取得できない問題を解決

*文
*文オリジナル
2018-01-02 16:21:301719ブラウズ

Yii CFileCache が値を取得できない問題を解決するにはどうすればよいですか?この記事では、Yii CFileCache が値を取得できない原因の分析を主に紹介します。必要な方は参考にしてください。お役に立てれば幸いです。

構成ファイルで

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

を構成し、コントローラーで

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

を設定してから、データベース'schemaCachingDuration'=>3600、を開きました‘schemaCachingDuration'=>3600,

初次使用是有缓存文件的 而且发现 确实加快不少访问速度

但时间一长 在某个时间段 也许是10分钟后 我就发现 runtime/cache 下面的缓存文件突然就没了

不清楚是什么原因 跟踪了好长时间才发现这个问题

另外还发现缓存目录里面还有 文件夹 什么0a d6 63 3a命名的 不知道这是起什么作用的

在线等缓存文件突然没了的原因?

缓存文件在D盘 数据空间是很大的

一、yii的缓冲需要在main.php里面配置,

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

配置完成以后只需在控制器里面….

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

二、配置多种缓存

main.php 的配置

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

控制器只需用相应的cacheid调用就好

如:Yii::app ()->dbcache

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

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

わかりませんその理由は、追跡に時間がかかりました。この問題が見つかりました

さらに、0a d6 63 3a という名前のフォルダーがあることもわかりました

。オンライン待機中にキャッシュ ファイルが突然消えたのはなぜですか?

キャッシュ ファイルは D ドライブのデータにあります。スペースはたくさんあります

1. Yii のバッファは main.php で設定する必要があります。設定後、

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

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

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

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

main .php 設定rrreee

コントローラーは、対応するキャッシュ ID を使用して呼び出すだけです

例: Yii::app ()->dbcache


3 つ目は、ページ バッファリングは全体をキャッシュすることです ページは静的です

main.php の設定は同じです Controller: COutputCache クラスをコントローラー クラスの動作フィルターとして使用します。 rrreeeCOutputCache は、データをキャッシュするときにキー名を自動的に生成する戦略として使用されます。使用できるもののリストは次のとおりです:

varyByRoute: このオプションを true に設定すると、特定のリクエストのルーティング部分が、キャッシュ データを生成する別の識別子の一部として使用されます。したがって、リクエスト コントローラーとアクションを組み合わせて使用​​して、キャッシュされたコンテンツを区別できます。 varyBySession: このオプションを true に設定すると、キャッシュ内のコンテンツを区別するために一意のセッション ID が使用されます。各ユーザーのセッションは異なりますが、キャッシュを提供するために使用できます。 varyByParam: 前述したように、入力 GET のパラメーターはキャッシュの内容を区別するために使用されます。

varyByExpression: このオプションに PHP 式を設定すると、対応する式の結果を使用してキャッシュされたコンテンツを区別できます。 COutputCache のデフォルトのキャッシュ ID は、cache であることにも注意してください

4. フラグメント キャッシュ 🎜🎜🎜 フラグメント キャッシュは、ページの一部をキャッシュするために使用されます。ビュー スクリプトでフラグメント キャッシュを使用できます。これを行うには、CController::beginCache() メソッドと CController::endCache() メソッドを使用します。 🎜rrreee🎜🎜関連する推奨事項: 🎜🎜🎜🎜🎜🎜Yii2 は Xunsou を統合して効率的な中国語単語の分割検索を実現🎜🎜🎜🎜🎜🎜Yii が不正なコードをフィルタリングする方法🎜🎜🎜🎜🎜🎜参加して参加するYii2 のマルチテーブル関連付けクエリメソッドを使用します 🎜🎜🎜

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

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