【转】.NET平台上的Memcached客户端介绍

http://magustest.com/blog/dotnet/introduction-to-dotnet-memcached-client/

 

Memcached的官网找.NET的客户端。最后在Codeplex上找到了一个叫Memcached Providers的客户端程序,很小,218K,里面就3个DLL,一个是Memcached Providers本身的DLL,还有一个是Enyim.Caching,Enyim.Caching也是一个.NET平台上的Memcached客户端,最后就是著名的log4net。

Memcached Providers的配置很方便,首先就是在.NET项目中引用上述提到的3个DLL文件,然后就需要修改项目的配置文件,如果是桌面程序,就修改APP.CONFIG,如果是WEB程序,就修改WEB.CONFIG。

首先在configSections节点下增加如下配置

1
2
3
4
5
6
<section name="cacheProvider" type="MemcachedProviders.Cache.CacheProviderSection, MemcachedProviders"
        allowDefinition="MachineToApplication" restartOnExternalChanges="true"/>
<sectionGroup name="enyim.com">
    <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>

接着在configuration节点下增加Enyim的配置节点

1
2
3
4
5
6
7
8
9
<enyim.com>
    <memcached>
        <servers>
            <!-- put your own server(s) here-->
            <add address="10.60.0.105" port="19191" />
        </servers>
        <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
    </memcached>
</enyim.com>

在configuration节点下增加Memcached Providers的配置节点

1
2
3
4
5
6
<cacheProvider defaultProvider="MemcachedCacheProvider">
    <providers>
        <add name="MemcachedCacheProvider" type="MemcachedProviders.Cache.MemcachedCacheProvider, MemcachedProviders"
                keySuffix="_MySuffix_" defaultExpireTime="2000"/>
    </providers>
</cacheProvider>

最后就是在configuration节点下增加Log4net的配置节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/cacheProvider>
<log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}]- %message%newline" />
        </layout>
    </appender>
    <root>
        <priority value="WARN"/>
        <appender-ref ref="ConsoleAppender">
            <filter type="log4net.Filter.LevelRangeFilter">
                <levelMin value="WARN"/>
                <levelMax value="FATAL"/>
            </filter>
        </appender-ref>
    </root>
</log4net>

最后做一个简单的测试

1
2
3
4
5
6
7
8
9
10
[TestMethod]
public void TestMethod1()
{
  string key = "mykey";
  string value = "Success!!!";
  DistCache.Add(key, value);                             //存数据
  Thread.Sleep(500);
  string ret = (string)DistCache.Get(key);            //读数据
  Assert.AreEqual(value, ret);                             //验证
}

整个过程下来比较顺利,基本没有遇到问题,这一切准备完毕以后就可以进入测试了。PHP,JAVA,Python等程序语言的Memcached客户端是比较多的,而.NET平台的客户端却只有2、3个,如果打算在.NET程序中使用Memcached,Memcached Providers也是一个不错的选择。

 

posted @ 2010-03-18 17:31  海浪~~  阅读(301)  评论(0编辑  收藏  举报