MENU

Memcached — シンプル&高速の元祖インメモリKVS

Memcached アイキャッチ
Memcached

Memcachedは2003年、Brad FitzpatrickがLiveJournalの高速化のために開発したインメモリKey-Valueストアです。「メモリに置くだけ、ディスクに永続化しない、機能はシンプル」という割り切った設計で、Webサービスのキャッシュ層として爆発的に普及し、Redisが台頭する前のキャッシュ標準を作った存在です。現在もFacebook、YouTube、Wikipediaなどで大規模に利用されています。

目次

この記事の目次

  1. Memcachedの設計思想
  2. Memcached vs Redis
  3. 典型的な使われ方
  4. Memcachedの現状
  5. まとめ

Memcachedの設計思想

Memcachedの設計思想

Memcachedはあえて機能を絞り、Key→Valueの読み書きだけに特化しています。永続化なし、リスト・ハッシュ等のデータ構造なし、レプリケーションなし。「キャッシュは消えても困らない」という割り切りでパフォーマンスを最大化しました。

クラスタ機能もサーバ側にはなく、クライアントライブラリが「どのキーをどのサーバに置くか」をハッシュで決める設計。シンプルゆえに障害切り分けが容易で、運用ノウハウが薄くても回せる安心感があります。

Memcached vs Redis

Memcached vs Redis

RedisとMemcachedはしばしば比較されますが、設計思想が違います。Memcachedは「純粋なキャッシュ」、Redisは「データ構造を扱えるストア」。新規案件ではRedisが選ばれることが多いですが、「ただのキャッシュ」用途ならMemcachedの方がシンプルで適している場面もあります。

Memcachedはマルチスレッド対応でマルチコアCPUを使い切れる強みがあり、「単純なキャッシュを最大スループットで」というユースケースでは依然として優位です。

典型的な使われ方

典型的な使われ方

Memcachedの代表ユースケースは「DBクエリ結果のキャッシュ」。重いSQLの結果をしばらく保存し、リクエストが来ても再計算しない、というパターンが基本です。

PHPやRubyのフレームワーク(Rails、Symfony等)には標準でMemcachedドライバが付属し、ほぼ「pip install / gem install して接続情報設定」だけで使い始められます。学習コストの低さも、長年愛される理由のひとつ。

Memcachedの現状

Memcachedの現状

Memcachedは2003年の登場以来、Facebook(最大級のMemcached利用者)、Wikipedia、YouTube等で大規模採用されています。Facebook は2008年に Memcached の利用規模で当時最大級に達し、自社で改造版(McRouter等)も公開。

新規案件のキャッシュ層としてはRedisを選ぶ傾向が強くなりましたが、「シンプルで動作が予測可能」というMemcachedの美徳は今も色褪せず、巨大基盤で動き続けています。

まとめ

Memcachedは「機能を絞ることで強さを発揮する」設計の見本のような存在で、Webキャッシュ史の原点と言えます。Redisが派手な機能で目立つ時代でも、Memcachedのシンプルさが活きる場面は今も残っています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次