memcachedとは何ですか? memcacheの使い方は? _PHP チュートリアル

WBOY
リリース: 2016-07-13 10:31:09
オリジナル
1056 人が閲覧しました

Memcached とは何ですか?

Memcached は、danga.com (LiveJournal を運営する技術チーム) によって開発された分散メモリ オブジェクト キャッシュ システムで、データベースの負荷を軽減し、動的システムのパフォーマンスを向上させるために使用されます。多くの人が SharedMemory のようなストレージ キャリアとして使用しています。memcached はデータの整理に同じ「Key=>Value」メソッドを使用しますが、共有メモリや APC などのローカル キャッシュとは大きく異なります。 Memcached は分散型です。つまり、ローカルではありません。ネットワーク接続に基づいてサービスを完了します (もちろん、localhost を使用することもできます)。それ自体はアプリケーションに依存しないプログラムまたはデーモン プロセス (デーモン モード) です。

Memcached は libevent ライブラリを使用してネットワーク接続サービスを実装します。理論的には、無制限の接続を処理できます。ただし、Apache とは異なり、安定した継続的な接続を重視しているため、実際の同時実行機能は制限されています。保守的な環境では、memcached の最大同時接続数は 200 ですが、これは Linux スレッドの機能に関連しており、この値は調整できます。 libevent については、関連ドキュメントを参照してください。

Memcached のメモリ使用量も APC とは異なります。 APC は共有メモリと MMAP に基づいており、Memcachd は独自のメモリ割り当てアルゴリズムと管理方法を備えており、通常、各 memcached プロセスは 2GB のメモリ空間を管理できます。より多くのスペースが必要な場合は、プロセスの数を増やすことができます。

Memcached の使用方法?

多くの場合、memcached は悪用されており、必然的に多くの人がそれについて苦情を言うことになります。よくフォーラムで「効率を上げるにはどうすればいいですか?」というような投稿をしている人を見かけますが、「memcached を使ってください」という返事が返されます。どこで使用しますか?何に使われますか?詳細な回答はありませんでした。著者がここで強調したいのは、memcached は万能薬ではなく、あらゆる状況に適しているわけではないということです。

Memcached は「分散」メモリ オブジェクト キャッシュ システムです。つまり、「分散」する必要がないアプリケーション、共有する必要がないアプリケーション、またはサーバーが 1 つしかないアプリケーションの場合、memcached は使用できません。それどころか、ネットワーク接続には、UNIX ローカル接続であってもリソースが必要になるため、システムの効率が低下します。

私の以前のテストデータは、memcached のローカル読み取りおよび書き込み速度が直接 PHP メモリ配列よりも数十倍遅いことを示しましたが、APC および共有メモリ メソッドは直接配列と同様です。ローカルレベルのキャッシュのみの場合、memcached の使用は非常に不経済であることがわかります。

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

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

興味がありそうな記事

  • PHP レポート 致命的なエラー 許可されたメモリ サイズ...メモリ不足のエラーを解決する方法
  • Windows での Memcache のインストールと設定チュートリアル
  • CSS の body の意味">html とは何ですか> 本文の意味
  • その年の現在の週または 1 月を計算するための php 関数
  • 文字列ステートメントを置換するための MySQL replace 関数の使用方法
  • 配列に含まれるかどうかを調べるための in_array() foreach array_search() の使用について
  • Mysql データベース キャッシュ関数の分析、デバッグ、パフォーマンスの概要
  • PHP 文字列エスケープ関数 (addslashes、stripslashes) の詳細な説明

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/764126.html技術記事 Memcached とは何ですか? Memcached は、danga.com (LiveJournal を運営する技術チーム) によって開発された分散メモリ オブジェクト キャッシュ システムで、動的システムにおけるデータベースの負荷を軽減し、改善するために使用されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート