memcached(メムキャッシュディー)。高性能分散メモリキャッシュサーバです。既存システムに導入してシステムレスポンスの高速化を図れます。

オープンソースのクラスタリング/memcachedとは

memcached(メムキャッシュディー)。高性能分散メモリキャッシュサーバです。既存システムに導入してシステムレスポンスの高速化を図れます。

基本情報

概要

memcached(メムキャッシュディー)とは、高性能分散メモリキャッシュサーバです。既存システムに導入してシステムレスポンスの高速化を図れます。

基本説明

「memcached」は「memory cache daemon」の略表記です。

memcachedは、メモリ上で動作するキーバリュー型揮発性キャッシュです。データベースへの問い合わせ結果(データ/オブジェクト)を一時的にキャッシュし、次に同じデータが参照された時にメモリから即座に返せます。データベースへのアクセス回数を減らし、動的Webアプリケーションの高速化/スケーラビリティ向上のために利用できます。

巨大な分散キャッシュシステムを構築でき、サーバ台数を増やすことで性能を向上できるため、大規模Webサービスなどでよく用いられます。特定の環境のみで使用したり、既存の環境で使用されていないメモリを活用する手段としても活用できます。

経緯

memcachedは、Danga Interactive社が中心となって開発されたソフトウェアです。

TOPに戻る

主な特徴

揮発性キャッシュ

memcachedはメモリ上にデータを格納するため、非常に高速なデータ読み込み/書き込みが可能です。

しかし、揮発性であるため、memcached自体の停止/ハード電源喪失などが発生すると、memcachedに保存されているデータは消失してしまいます。また、メモリが指定された容量に達すると、LRU(Least Recently Used)に基づいて利用されないキャッシュから自動的に削除されていきます。そのため、データベースのように使用できません。あくまでキャッシュ機構としての使用が想定されています。

負荷分散「コンシステント・ハッシング」

memcachedは、「コンシステントハッシング(Consistent Hashing)」アルゴリズムによってデータ分割/負荷分散を行います。分散型システムを構成する各ノード(memcached)が、論理的にリング(輪)を形作るように配置されます。

シンプルプロトコル

memcachedサーバとクライアントの通信は、シンプルな行ベースプロトコルによって行われます。複雑なフォーマット(XMLなど)は利用しません。

イベントハンドリング「libevent」

「libevent」とは、サーバに対するコネクション数が増加してもパフォーマンスが落ちないようにするための共通仕様ライブラリです。Linuxの「epoll」、BSD系OSの「kqueue」などのイベントハンドリング機能をラップします。

memcachedは、この「libevet」ライブラリを利用しているため、Linux/BSD/SolarisなどのOS上で高いパフォーマンスを発揮できます。

非セキュア

memcachedは、最高のパフォーマンスを得るために、認証/暗号化などのセキュリティ機能を提供していません。セキュリティに関しては、ネットワーク環境/セキュリティツールなどでの確保が必要です。

TOPに戻る

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Redis」「Kyoto Tycoon」など。

TOPに戻る

導入事例

Facebook/YouTube/Wikipedia/mixiなどのWebサービスで採用され、スケーラビリティ向上のための重要要素になっています。

TOPに戻る

ライセンス情報

memcachedのライセンスは「BSDライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

TOPに戻る

ダウンロード

ダウンロードページ

TOPに戻る

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

memcached最新TOPICS

最新情報はありません。

memcached最新CLOSEUPコラム

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter