Memcached

高パフォーマンスキャッシュやセッションストアとして使用できる、使いやすい分散型インメモリ key-value ストア

Memcached とは

Memcached は使いやすく、高パフォーマンスなインメモリデータストアです。ミリ秒未満の応答時間を実現する、スケーラブルかつオープンソースの成熟したソリューションで、キャッシュセッションストアとして役立ちます。Memcached は、ウェブ、モバイルアプリケーション、ゲーム、アドテクノロジー、e コマースの分野のリアルタイムアプリケーションを稼動させるためによく使われています。

Memcached とは

Memcached の仕組み

データをディスクや SSD に保存するデータベースとは異なり、Memcached はデータをメモリ内に保持します。Memcached のようなインメモリ key-value ストアでは、ディスクにアクセスする必要がないため、シークタイムの遅延がなく、マイクロ秒単位でデータにアクセスできます。また、Memcached は分散型であるため、新しいノードを追加することにより簡単にスケールアウトできます。さらに Memcached はマルチスレッドであるため、コンピューティング性能を簡単にスケールアップできます。スピード、スケーラビリティ、シンプルな設計、効率的なメモリ管理、一般的な言語のほとんどに対応する API サポートなどの利点により、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 サービスである Amazon ElastiCache for Memcached を提供しています。

  • クラウド内で Memcached のデプロイメントを簡単に設定、運用、スケールできます。障害が発生したノードは自動的に検出して置き換えられます。
  • 高コスト効率で規模の変更が可能なハードウェア容量を利用します。
  • 自動検出と一緒に ElasitCache Memcached Cluster Client を使用することにより、ノード管理を簡素化してアプリケーション開発を高速化できます。