.NET平臺上的Memcached客戶端介紹

作者: 進化  發布時間: 2009-07-19 10:21  閱讀: 10073 次  推薦: 1   原文鏈接   [收藏]  

早上接到一個任務,需要對Linux服務器的Memcached的update操作進行性能測試,我發現我是一個典型的“手里拿著錘子,就把所有問題都當成釘子”的人。我第一個念頭就是,上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節點下增加如下配置:

 

<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的配置節點:

 

<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節點下增加Log4net的配置節點:

 

<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>

 

最后做一個簡單的測試:

 

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也是一個不錯的選擇。

1
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()