1

特定のファイルがAPCで opcode キャッシュされないようにする方法はありますか? ユースケースは次のとおりです。

動的にサイズを変更する (必要に応じてサーバーをスピンアップおよびスピンダウンする) クラウド上にあるアプリケーション。config.php スクリプトは、新しい IP が使用可能または使用不可になったときにそれを認識している必要があります。

これらの変更は頻繁に発生し、config.php ファイルはかなり基本的なものであるため、1 つのファイルについてのみ APC をクリアすることを心配する必要がないことが理想的です。

APC から 1 つのファイルをクリアすることは間違いなく可能ですが、コマンド ライン経由で APC にアクセスできないため、ソリューションはかなり洗練されていません。

4

3 に答える 3

2

同様のユースケースがあります。同じ質問を何度も自問しましたが、解決策を見つけることができませんでした。ただし、私の解決策は、各サーバーの APC キャッシュをクリアする簡単なスクリプトを作成することでした。アプリを再構築するたびに、各サーバーのファイルをヒットしてオペコード キャッシュをクリアする必要がありますapc_clear_cache 。ファイルを 1 つだけクリアする必要がある場合は、apc_compile_file

お役に立てれば。

于 2010-10-31T01:20:34.903 に答える
1

はい。apc.filter 設定ディレクティブを確認してください。別の質問| PHP ドキュメント

于 2010-11-17T02:23:15.260 に答える
1

あなたが提案していることを行う方法はわかりませんが、それを回避する方法を設計できるはずです。

明らかな解決策は、データを php ファイルに保存しないことです。すでに APC を取得しているため、構成データを APC に保持しないでください (オペコードではなく、キャッシュ データとして)。

したがって、config.php を変更するものは何でも、次のようになります。

  1. PHP 以外のファイル (something.ini など) を変更します。
  2. APC キャッシュ エントリを無効にします。

config.php がデータを必要とする場合、通常はキャッシュから読み取ります。キャッシュが無効化されている場合は、ini ファイルからデータを読み取り/解析し、キャッシュを更新して、通常どおり処理を進めます。

結局のところ、オペコード キャッシュを使用してデータをキャッシュしています。代わりにデータ キャッシュを使用する必要があります。幸いなことに、APC は両方を提供します。

于 2010-10-31T02:41:07.550 に答える