Memcached
高パフォーマンスキャッシュやセッションストアとして使用できる、使いやすい分散型インメモリ key-value ストア。
Memcached とは
Memcached は使いやすく、高パフォーマンスなインメモリデータストアです。ミリ秒未満の応答時間を実現する、スケーラブルかつオープンソースの成熟したソリューションで、キャッシュやセッションストアとして役立ちます。Memcached は、ウェブ、モバイルアプリケーション、ゲーム、アドテクノロジー、e コマースの分野のリアルタイムアプリケーションを稼動させるためによく使われています。
Memcached の仕組み
データをディスクや SSD に保存するデータベースとは異なり、Memcached はデータをメモリ内に保持します。Memcached のようなインメモリ key-value ストアでは、ディスクにアクセスする必要がないため、シークタイムの遅延がなく、マイクロ秒単位でデータにアクセスできます。また、Memcached は分散型であるため、新しいノードを追加することにより簡単にスケールアウトできます。さらに Memcached はマルチスレッドであるため、コンピューティング性能を簡単にスケールアップできます。スピード、スケーラビリティ、シンプルな設計、効率的なメモリ管理、一般的な言語のほとんどに対応する API サポートなどの利点により、Memcached は高パフォーマンスで大規模なキャッシングが関係する数多くのユースケースで採用されています。

セキュリティ、スケーラビリティを備えた完全マネージド型 Memcached
Memcached の利点
ミリ秒未満の応答時間
Memcached ではすべてのデータがサーバーのメインメモリに保持されます。ほとんどのデータをディスクや SSD に保存する PostgreSQL、Cassandra、MongoDB などのデータベースとは異なり、インメモリデータストアではディスクとの間を繰り返し往復する必要はありません。これにより、さらに多くのオペレーションをさらに速い応答時間でサポートできます。その結果、平均ミリ秒未満の読み取りと書き込み時間という非常に高速なパフォーマンスと、1 秒に幾百万ものオペレーションのサポートが可能になります。
シンプルで使いやすい
Memcached はシンプルで汎用に設計されているため、アプリケーション開発において強力で使いやすいソリューションです。Memcached の開発者は多くのオープンソースクライアントを利用できます。Java、Python、PHP、C、C++、C#、JavaScript、Node.js、Ruby、Go やその他多数の言語がサポートされています。
スケーラビリティ
Memcached の分散型、マルチスレッドアーキテクチャにより簡単にスケールできます。複数のノード間でデータを分割して、クラスターに新しいノードを追加することにより性能をスケールできます。さらに、Memcached はマルチスレッドであるため、特定のノードにおいて複数のコアを利用可能です。これにより、コンピューティング性能を簡単にスケールアップできます。Memcached を利用して、高速かつ安定したパフォーマンスを実現する、高度にスケーラブルな分散型キャッシングソリューションを構築できます。
コミュニティ
Memcached は活発なコミュニティがサポートしている成熟したオープンソースプロジェクトです。WordPress や Django といったアプリケーションでは、パフォーマンスを向上させるために Memcached の使用がサポートされています。Memcached はオープン標準ベースで、オープンデータ形式をサポートしており、豊富なクライアントを特徴としているため、ベンダーや技術のロックインはありません。
Memcached の一般的なユースケース
キャッシュ
Memcached は、高パフォーマンスインメモリキャッシュを実装して、データアクセスレイテンシーの減少、スループットの向上、バックエンドシステムの負荷軽減を実現する優れた方法です。Memcached によってキャッシュされたアイテムはミリ秒未満で提供されるため、負荷の増大に対応して、高コスト効率かつ簡単にスケールすることができます。Memcached は、データベースのクエリ結果のキャッシュ、セッションのキャッシュ、ウェブページのキャッシュ、API キャッシュ、画像、ファイル、メタデータなどのオブジェクトのキャッシュによく使われています。
セッションストア
Memcached は永続性が重要でない場合に、インターネット規模のアプリケーションにセッションデータを保存、管理するためにアプリケーション開発者がよく利用するインメモリデータストアです。Memcached は、ユーザープロファイル、認証情報、セッション状態などのセッションデータを管理するために必要とされるミリ秒未満のレイテンシーやスケールを備えています。
言語のサポート
Memcached では、以下のような主要なプログラミング言語とプロトコルをサポートしています。
Python
Java
PHP
C/C#/C++
Perl
Go
Ruby
JavaScript
Node.js
ASCII プロトコル
バイナリプロトコル
TCP および UDP プロトコル
Redis とMemcached
Redis と Memcached の 2 つはメモリ内キー値データ保存として最もよく使われます。Memcached はシンプルに、また Redis は幅広いユースケースに対して効果的であるように、豊富な機能をお届けできるように作られています。2 つのエンジンの違いを理解して、どちらのソリューションがご自身のニーズに合うかを決めてください。Redis 対Memcached の詳細を見る >>
AWS での完全マネージド型の Memcached
Amazon では完全マネージド型の Memcached サービスである Memcached 用 Amazon ElastiCache を提供しています。
- クラウド内で Memcached のデプロイメントを簡単に設定、運用、スケールできます。障害が発生したノードは自動的に検出して置き換えられます。
- 高コスト効率で規模の変更が可能なハードウェア容量を利用します。
- 自動検出と一緒に ElasitCache Memcached クラスタークライアントを使用することにより、ノード管理を簡素化してアプリケーション開発を高速化します。