13

私は現在 memcached をサービスに実装していますが、実際のコードをキャッシュするために APC も実装する必要があるという提案が頻繁に出てきます。

そこにあるいくつかのチュートリアルとPHPのドキュメントも調べましたが、私の主な質問は、大規模に実装するにはどうすればよいですか? PHP のドキュメントでは、変数の保存について説明していますが、それほど詳しくはありません。

この分野について無知で申し訳ありませんが、実際のサイトでこれが実装されている場所を知りたいです。文字通りすべてをキャッシュするのか、それとも関数などの頻繁に使用される部分のみをキャッシュするのか?

ありがとう!

4

3 に答える 3

9

APC は、オペコード キャッシュであり、一般的なデータ キャッシュでもあります。後者は memcached とほとんど同じように機能しますが、opcode キャッシュは解析された php ファイルをキャッシュすることで機能するため、リクエストごとに解析する必要はありません。これにより、通常、実行時間がかなり短縮されます。

于 2009-05-23T11:41:31.350 に答える
9

ご存じのように、PHP はインタープリター型言語であるため、要求がサーバーに到着するたびに、必要なファイルと含まれているすべてのファイルを開き、それらを解析して実行する必要があります。APC が提供するのは、require/include および解析のステップをスキップすることです (ファイルは依然として必要ですが、メモリに保存されるため、アクセスははるかに高速です)。そのため、スクリプトを実行するだけで済みます。私たちのウェブサイトでは、APC と memcached を組み合わせて使用​​しています。上記の手順を高速化する APC と、セッション変数だけでなく、グローバル変数 (一定時間複数のクライアントで共有できる、事前に計算された高価な関数呼び出しなど) の両方の高速で分散された格納とアクセスを可能にする memcached。これにより、ログイン ステータスなどのクライアントの状態を失うことなく、複数のフロント エンド サーバーを使用できます。

何をキャッシュする必要があるかということになると、それは実際にはアプリケーションによって異なります。どこかで複数のフロントエンドが必要な場合は、そのようなキャッシュと保存に memcached を使用し、APC をオペコード キャッシュとして使用します。

于 2009-05-23T11:43:54.497 に答える
2

APC のオペコード キャッシング機能を実装する必要はありません。php モジュールとして有効にするだけです。

APC キャッシュ サイズおよびその他の構成情報は、こちら.

于 2009-05-23T11:54:23.803 に答える