ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

.NETからmemcachedを使う

Saturday, 17 May 2008 02:41 by sabro

SecondLife向けのWebサービスなど立てても、1日数人しか来ない気もするが、自分の勉強も兼ねて、memcachedで負荷軽減の仕組みとか作ってみる。

memcachedの.Net向けドライバは以下の3つが公式サイトで紹介されていた。

  • .NET memcached client library・・・古くからある感じ
  • Enyim Memcached・・・かなり新しい5月にリリースされてる
  • BeIT Memcached・・・こちらは3月にリリースされてる

とりあえず、一番最近リリースされてて機能も豊富そうな、Enyim Memcachedを使うことに決定。設定は以下のような感じで、web.configのconfigurationタグ直下に書いておけばいいみたい。

  <enyim.com>
<memcached>
<servers>
<add address="192.168.1.1" port="11211" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
</memcached>
</enyim.com>

コードは至ってシンプル♪

// Memcached Clientのインスタンス作成
MemcachedClient mc = new MemcachedClient();

// オブジェクト格納(StoreMode.Setで上書き。"value"文字列を5分キャッシュ)
mc.Store(StoreMode.Set, "key", "value", new TimeSpan(0, 5, 0));

// オブジェクト取出(ジェネリック対応メソッドがある!)
string str = mc.Get<string>("key");

あとは、DBからデータを取得するとき、まずキャッシュを見るようにして、データ更新時にはキャッシュを消すようにすればいいだけ。

これで充実したキャッシュライフが送れること請け合いですな( ̄∇ ̄)

Tags:  
Categories:   .NET
Actions:   Permalink | Comments (0) | Comment RSSRSS comment feed

Add comment




biuquote
  • Comment
  • Preview
Loading