memcached for windows(64-bit) のインストール で memcached をインストールしたので、ASP.NET から memcached を使ってみます。
今回は、公式に記載されているクライアントの1つである EnyimMemcached を使用します。
EnyimMemcached
http://github.com/enyim/EnyimMemcached
1.ダウンロードした Enyim.Caching.dll と log4net.dll を参照に追加します。
2. web.config に設定を追加します。下記の例では memcachedサーバーは「192.168.0.1」と「192.168.0.2」の2台で、ポートはデフォルト(11211)の環境となっています。
<configuration>
<configSections>
<sectionGroup name="enyim.com">
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup>
<section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
・・・・・
</configSections>
<enyim.com>
<memcached enablePerformanceCounters="false">
<servers>
<add address="192.168.0.1" port="11211" />
<add address="192.168.0.2" port="11211" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
</memcached>
</enyim.com>
<memcached keyTransformer="Enyim.Caching.TigerHashTransformer, Enyim.Caching">
<servers>
<add address="192.168.0.1" port="11211" />
<add address="192.168.0.2" port="11211" />
</servers>
<socketPool minPoolSize="2" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
</memcached>
・・・・・
</configuration>
上記で使用可能となります。設定に問題なければ、普通にインスタンスを作成して使用することができますし、自動的に複数の memcached サーバへデータが保存されます。
using System;
public partial class enyim : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// MemcachedClientのインスタンス作成
Enyim.Caching.MemcachedClient mc = new Enyim.Caching.MemcachedClient();
// 文字列をキャッシュに入れる
mc.Store(Enyim.Caching.Memcached.StoreMode.Set, "MyKey", "Hello World ", new TimeSpan(0, 3, 0));
// キャッシュの文字列を表示
Response.Write(mc.Get("MyKey"));
}
}