ホームページ >バックエンド開発 >PHPチュートリアル >Memcached アプリケーションと分析 (1/9)_PHP チュートリアル

Memcached アプリケーションと分析 (1/9)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:10:101004ブラウズ

◎Memcached とは何ですか

この問題について詳しく説明する前に、まず Memcached が「そうではない」ものを理解する必要があります。多くの人が SharedMemory のようなストレージ キャリアとして使用していますが、memcached はデータの整理に同じ「Key=>Value」メソッドを使用しますが、共有メモリや APC などのローカル キャッシュとは大きく異なります。 Memcached は分散型です。つまり、ローカルではありません。ネットワーク接続に基づいてサービスを完了します (もちろん、ローカルホストを使用することもできます)。これは、アプリケーションに依存しないプログラムまたはデーモン プロセス (デーモン モード) です。

Memcached は、libevent ライブラリを使用してネットワーク接続サービスを実装します。理論的には、無制限の数の接続を処理できます。ただし、Apache とは異なり、安定した連続接続を重視しているため、実際の同時実行機能は制限されています。保守的な環境では、memcached の最大同時接続数は 200 ですが、これは Linux スレッドの機能に関連しており、この値は調整できます。 libevent については、関連ドキュメントを参照してください。 Memcached のメモリ使用量も APC とは異なります。 APC は共有メモリと MMAP に基づいており、Memcachd は独自のメモリ割り当てアルゴリズムと管理方法を備えており、通常、各 memcached プロセスは 2GB のメモリ空間を管理できます。より多くのスペースが必要な場合は、プロセスの数を増やすことができます。

◎Memcached はどのような場合に適していますか? 多くの場合、memcached が悪用されており、当然、それに対する苦情が発生します。よくフォーラムで「効率化の方法」みたいな投稿をしている人を見かけますが、「memcached を使えばいい」という返事が返ってくるのですが、使い方、どこで、何に使うのかについては文章がありません。 Memcached は万能薬ではなく、すべての状況に適しているわけでもありません。

Memcached は「分散型」メモリ オブジェクト キャッシング システムです。つまり、「分散」する必要がない、共有する必要がない、または単にメモリ オブジェクトのみを持つだけで十分小さいアプリケーションには、memcached は何のメリットももたらしません。逆に、ネットワーク接続 (UNIX ローカル接続であっても) にもリソースが必要となるため、システムの効率が低下します。 以前のテスト データでは、memcached のローカル読み取りおよび書き込み速度は、直接 PHP メモリ アレイよりも数十倍遅いのに対し、APC および共有メモリ メソッドは直接アレイと同様であることが示されました。ローカルレベルのキャッシュのみの場合、memcached の使用は非常に不経済であることがわかります。

Memcached は、データベースのチュートリアルでフロントエンド キャッシュとしてよく使用されます。 SQL 解析、ディスク操作、その他のオーバーヘッドがデータベースよりもはるかに少なく、メモリを使用してデータを管理するため、大規模なシステムではデータベースを直接読み取るよりも優れたパフォーマンスを実現できます。多くの場合、memcached によりデータベースの負荷が大幅に軽減され、システムの実行効率が向上します。さらに、memcached はサーバー間でデータを共有するための記憶媒体としてよく使用されます。たとえば、SSO システムでシステムのシングル サインオン状態を保存するデータを memcached に保存し、複数のアプリケーションで共有できます。

memcached はデータの管理にメモリを使用するため、サーバーが再起動されるか memcached プロセスが終了するとデータが失われるため、memcached を使用してデータを永続化することはできないことに注意してください。多くの人は、memcached のパフォーマンスがメモリとハードディスクの比較と同様に非常に優れていると誤解しています。実際、memcached の実際のボトルネックはネットワークにあります。ディスクデータベースシステムと比較して、過剰なオーバーヘッドがなく、直接読み書きする方法がないため、非常に大量のデータを簡単に処理できるという利点があります。多くの場合、2 ギガビットのネットワーク帯域幅があり、それらはすべて完全にロードされており、memcached プロセス自体は多くの CPU リソースを占有しません。

1 2 3 4 5 6 7 8 9


http://www.bkjia.com/PHPjc/444750.html

tru​​ehttp://www.bkjia.com/PHPjc/444750.html技術記事 ◎Memcached とは何ですか? この問題について詳しく説明する前に、まず Memcached が何ではないのかを理解する必要があります。多くの人が SharedMemory のような記憶媒体として使用していますが、memcache...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。