memcachedとは何か
オープンソースのメモリオブジェクトキャッシュシステム。
デフォルトだとキャッシュの保存先はDBやファイルになっていることが多いが、memcachedを使うとサーバーとしてキャッシュを管理することが出来、かつ複数台運用も出来るため、スケールするサービスの場合は便利。
例えば、Facebookの場合は高速化のため数千台のmemcachedサーバーを運用しているらしい。
memcacheとmemcachedがあるが、違いについては以下の記事が詳しい。簡単に言うとmemcachedの方が新しくPHPに対応しておりパフォーマンスが高い。
ケーワン・エンタープライズのエンジニアメモ(`・ω・´)ゞビシッ!!: memcacheとmemcachedの違い http://k-1-ne-jp.blogspot.jp/2013/01/memcachememcachedlibmemcached.html
memcached自体をWebサービスとして提供している事業者もあり、AWSのElasticacheやHerokuのアドオン等。
サービスとしてmemcachedを使うメリット
アプリケーションのホスト先として、自社サーバーではなくHerokuなどのSaaSを利用した場合、
AWS EC2などに用意したMemcachedサーバーを使用する事もできるが、管理コスト(死活監視、バックアップなど)を考えると、Herokuに用意されているアドオンを利用する方がメリットが大きい。
メリット
- キャッシュ専用サーバーとしてmemcachedを複数台運用することでスケールが出来る
- オープンソースで簡単に始められる
- ネット上にドキュメントが多い
デメリット
- キャッシュのアクセスにネットワークで接続するため遅延が発生する(1台運用でローカルにインストールしてる場合は除く)
- 分散運用するためキャッシュの削除や更新などの管理が難しい
参考記事
WordPressの最速キャッシュを探せ!APC、memcached、Transients APIを比較 | OXY NOTES http://oxynotes.com/?p=9278
ケーワン・エンタープライズのエンジニアメモ(`・ω・´)ゞビシッ!!: memcacheとmemcachedの違い http://k-1-ne-jp.blogspot.jp/2013/01/memcachememcachedlibmemcached.html
Heroku上に構築するWebアプリケーションは「Memcached」でサーバサイドセッションを管理する (1/2):CodeZine(コードジン) http://codezine.jp/article/detail/8345
Railsのマスタ的なModelのキャッシュについて[Redis] - 酒と泪とRubyとRailsと http://morizyun.github.io/blog/model-master-cache-rails-redis/