22

職場では、最近、「大規模な」アプリケーションの設計を開始しました (1 日に何百万ものヒットを処理できるように設計しています)。上級開発者の 1 人とシステム管理者がサーバーに memcache をセットアップしました。

私が理解しているように、Memcache はクエリ結果と特定のテーブルをメモリ内に X 時間保持し、すべてをハンキー ドリーに保ちます。

memcache の欠点は、自分のローカル開発環境に設定することが一生できないことです。自分でコンパイルする方法について、いくつかの異なる指示に従いました。すべてではないにしても、ほとんどの手順が適切に機能しているように見えますが、PHPLoad で次のエラーが発生します。

 [11-Sep-2010 16:02:30] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0  

主な質問ではありませんが、偶然にも、Snow Leopard で MAMP 1.9 用に Memcache をコンパイルできた場合は、そのコツを教えてください。

私の主な質問は、さまざまな Web キャッシング テクノロジの違いについてです。Memcache、APC、および Xcache (ここでは、mysql クエリの結果を手動で txt ファイルにキャッシュする) についての言及を見てきましたが、それぞれの長所、短所、および違いはわかりません。

私の考えでは、Memcache には、プロジェクトの主任開発者とシステム管理者が選択したものであるという利点があります。Macでセットアップしてコンパイルするのは完全に愚か者であるという欠点があります。:-^)

他のキャッシュ テクノロジのそれぞれ (または 1 つでも) の長所と短所を列挙できる人からの連絡をお待ちしています。それらはどこで最もよく使用され、どのように最もよく使用されますか。等々。

どれも有益な情報だと思います。

私の知識を広げるためにあなたの時間を貸してくれてありがとう。- アレックス。

4

2 に答える 2

32

まず、php のオペコード キャッシャーのリストです。

2 番目の Memcache/MemcacheD は Opcode キャッシャーではありません。これは、分散メモリ キャッシング システムです。PHP コードの速度/パフォーマンスは向上しません。データの保存のみに使用できます。

APC、EAccelerator、XCache などは非分散型です。つまり、ローカル Web サーバーにのみデータを保存できます。ただし、これらはすべてオペコード キャッシャーであり、PHP アプリのパフォーマンスを向上させることができます。EAccelerator (現在のバージョン) を除くほとんどは、データを保存することもできます。

私は通常、opcode キャッシャーに APC を選択します (報告によると、これは PHP 6 のコアに組み込まれる予定です)。ただし、サイトに複数の Web サーバーもある場合は、MemcacheD も使用します。


編集 1 MAMP で APC、Memcache をセットアップするのは非常に煩わしいことに同意します。ただし、そのようなものを扱うチュートリアルがあります。


編集2また、アプリに最適なオペコードキャッシャーに関しては、使用しているサーバーによって異なります。一部のシステムでは、より適切に機能するものもあります。また、キャッシャーのパフォーマンスについては、アプリのサイズとスケールによっても異なります。


編集 3いくつかの異なるキャッシャーのパフォーマンスの比較に関する非常に興味深い記事です。(この記事は 2006 年に書かれたようで、現在の参照には使用しないでください)

于 2010-09-23T06:05:38.337 に答える
3

APC はオペコード キャッシュです。PHPファイルを毎回解析する必要がないように、解析されたPHPコードを保存します。

Memcache はデータキャッシュです。キーと値のペアとしてデータを保存します。

于 2014-02-15T11:25:32.067 に答える