ASP.NET で memcached を使う

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"));

    }
}

Comments are closed.

Post Navigation