0

一連の設定の定義を含む config.php ファイルがあるとします。私の初期化スクリプトは、これらの値をメモリにロードします。

それらをメモリにロードする代わりに、apc にロードしたとします。config.php の内容を手動で変更したときに、apc に変数を強制的に更新させるにはどうすればよいですか? キャッシュされた変数が自動的に更新されるように、変更を実行する何らかのユーティリティ スクリプトを作成する必要がありますか?

apc 内に変数が存在し、新しい変数が既存 (更新されたバージョン) と同じ名前で追加された場合、古いキャッシュ値は上書きされますか?

4

1 に答える 1

1

config.php の内容を手動で変更したときに、apc に変数を強制的に更新させるにはどうすればよいですか?

ここにはいくつかのオプションがあります。

  1. を呼び出すとapc_store、「生存時間」の値を秒単位で設定できます。たとえば、各構成値を正確に 5 分間持続するように設定できます。一度が欠落している場合 ( apc_exists)、それらを再生成して再キャッシュするコードをトリガーできます。
  2. 「最終更新」時刻は、コードが到達できる場所と APC 内の両方に保存できます。2 つを比較します。APC キャッシュが古くなっている場合は、更新をトリガーします。
  3. すでに値を自動的にキャッシュしている場合は、キーに対して構成更新呼び出しを実行するものを持つことができapc_deleteます。
  4. 値をまだ自動的にキャッシュしていない場合は、構成の更新を実行するものを単にapc_store自分自身を呼び出すようにする必要があります。

ここで暗示しているように、構成の更新が完全に手動のものではなくプログラムによるものであると仮定すると、1 つ目は最小限の労力で、2 つ目は最も正気であり、3 つ目と 4 つ目はおそらく正しいことです。

構成の更新が常に手動である場合は、キャッシュを単純にクリアまたは更新する、手動で呼び出すことができる小さなスクリプトを作成する価値があります。

率直に言って、APC をバイトコード キャッシュとしても使用している場合、すべてのページビューで純粋な PHP 構成ファイルを解析するコストは存在しません。そのような状況では、内部で定義された値をキャッシュすることはまったくばかげています。

変数が apc 内に存在し、新しい変数が既存 (更新されたバージョン) と同じ名前で追加された場合、古いキャッシュ値は上書きされますか?

apc_addの代わりに使用していない限り、正しいですapc_store

于 2012-12-27T05:34:09.250 に答える