【連載】Twitterまとめ - 第2回 サービス企画の苦しみ編(5月3週)
2010年05月27日
サイテック株式会社で、根っからの技術者である社長や、大手IT企業から転職してきた仲間たちと議論しながら、社会をもっと豊かに、幸せにするアプリケーションを作ってみませんか?
この会社の特徴を知る
など 8 記事
など 17 記事
など 66 記事
現在、フレームワークの開発を行っていますが、
その過程で、memcachedを検証してみました。
memcachedとは、
オブジェクトをメモリにキャッシュするデーモンで、
PHPに限らず、各言語用とのインターフェースライブラリがそろっています。
mixiやニコ動でも使っているようです。
主な使い方としては、
・アプリケーションレベルでのオブジェクトの共有(静的インスタンス)
・クエリ結果のキャッシュ
・セッションストア
ひとまず、フレームワークに組み込むとしたら、
「アプリケーションレベルでのオブジェクトの共有」の方法として、利用できないかと考えました。
アプリケーション全体で使用し、かつ、内容が変わらないようなもの、
例えば、DB接続定義・区分定義・絵文字変換表など。
また、iniファイルやXMLなどパースが必要なものはパース後の形で格納しておけば、
パースのコストが減るなぁと考えていました。
それらを使いやすい形で格納したオブジェクトを用意して、
それをmemcachedに格納し、
2回目以降のアクセスは、全てmemchachedからオブジェクトを取得すれば、
ファイルIOは減るし、高速化するかなという予想。
インストールもyumだし、使い方も簡単なので、
効果があればフレームワークに組み込もうかと考えていました。
が、相当なアクセスがあるような状況下でないと、
ほとんど効果ないですね。
サーバのリソースに余裕があるような場合は、
ファイルIOでもDBアクセスでも結構速いので、
memcachedを使うメリットはほぼゼロな気がします。
ただ、かなりの高負荷が想定される場合、
特にDBはスケールアウトが難しいため、
少しでもDBアクセスを減らすために利用するという使い方はメリットがありそうです。
高速化というよりも、負荷軽減という目的の方が使い道がありそうです。
(ちなみに、負荷軽減が本来の目的のようです)
とりあえず、ものすごく簡単に使えることがわかったので、
高負荷が予想されるシステムの場合、あらかじめ仕組みとして組み込んでおいた方がいいかもしれないですね。
トラックバックはありません
メンバー紹介
2010年05月27日
2010年05月18日
2010年04月26日
2010年04月19日
2010年03月10日
2010年03月10日
2010年02月25日
2010年01月22日
2009年12月24日
2009年12月21日
コメント