この記事では主に Memcached の動作原理を詳しく紹介します。 Memcached ビデオ チュートリアル または Memcached マニュアル も参照できます。
1. はじめに:
Memcache は、メモリ内に統合された巨大なハッシュ テーブルを維持することで、画像、ファイル、ファイルなどのさまざまな形式でデータを保存するために使用できます。データベースの検索結果など簡単に言うと、データがメモリに呼び出されてからメモリから読み取られるため、読み取り速度が大幅に向上します。 Memcached は 1 つ以上のサーバーでデーモンとして実行され、いつでもクライアントの接続と操作を受け取ります。
2. 特徴:
1. 十分なメモリがある限り、Memcached に保存できるアイテム データの量に制限はありません。
2. 単一の Memcached プロセスで使用される最大メモリは 2G です。より多くのメモリを使用するには、複数のポートで複数の Memcached プロセスを開くことができます。
3. 永続的に設定されている場合、データの有効期限は 30 日です。定数 REALTIME_MAXDELTA
4 は、この長さよりも大きい場合は保存できません。1 つの項目の最大データは 250 バイトです。 1MB。1MB を超えるデータは保存されません。定数 POWER_BLOCK 1048576、
6 によって制御されます。最大同時接続数は 200 です。
conn_init() の freetotal によって制御され、ソフト接続の最大数は settings.maxconns=1024 により 1024 です。
スペース占有に関連するパラメータを制御します: settings.factor=1.25、settings.chunk_size=48、
スラブのデータ占有率とステッピング方法に影響します
8. Memcached は、libevent ライブラリに基づくノンブロッキングソケット通信サービスであるため、メモリの読み取りと書き込みの速度が非常に高速です。
10. Memcached は小規模なデータ分散プラットフォームとして非常に有効です。
11.memcached は、キーと値の間に 1 対 1 の対応関係があります。デフォルトのキーは 128 文字を超えることはできません。 セクションでは、デフォルト値のサイズは 1M で、これは 1 つのスラブです。2M 値 (連続) を保存する場合、2 つのスラブは連続しておらず、メモリに保存できないため、2 つのスラブは使用できません。 保存する場合は、スラブのサイズを変更する必要があります。複数のキーと値を保存する場合、スラブが完全に使用されていない場合でも、他のデータは保存されません。
12. 価値の低いデータを置くと、サーバーがダウンするとすべてのデータが失われます
3. 分散アプリケーション。 memcached 自体は分散システムに基づいているため、大規模な分散システムに特に適しています。
2. データベースのフロントエンド キャッシュ。多くの場合、データベースは Web サイト システムのボトルネックになります。データベースへの大量の同時アクセスにより、Web サイトのメモリがオーバーフローすることがよくあります。もちろん、Hibernate のキャッシュ メカニズムを使用することもできます。ただし、memcached は分散に基づいており、Web サイトのアプリケーション自体から独立させることができるため、大規模な Web サイトがアプリケーションを分割するのにより適しています。
3. サーバー間のデータ共有。たとえば、Web サイトのログイン システムとクエリ システムを 2 つのアプリケーションに分割し、それらを異なるサーバーに配置してクラスタ化します。ユーザーがログインした後、ログイン情報はログイン システム サーバーからクエリ システムにどのように同期されますか。サーバー?このとき、ログイン システムはログイン情報をキャッシュし、クエリ システムはローカル情報を取得するのと同じようにログイン情報を取得できます。
4. 適用されない場合
逆に、「分散」する必要がない、共有する必要がない、または単純にサーバーが 1 つしかないほど小さいアプリケーションの場合、memcached は何のメリットももたらしません。ネットワーク接続にもリソースが必要なため、システムの効率が低下します
この記事は一定の参考値を持っているため、必要としているすべての人に役立つことを願っています。
以上がMemcachedの動作原理を詳しく紹介【概要】の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。