早上接到一個任務需要對Linux服務器的Memcached的update操作進行性能測試我發現我是一個典型的手裡拿著錘子就把所有問題都當成釘子的人我第一個念頭就是上Memcached的官網找NET的客戶端最後在Codeplex上找到了一個叫Memcached Providers的客戶端程序很小K裡面就個DLL一個是Memcached Providers本身的DLL還有一個是EnyimCachingEnyimCaching也是一個NET平台上的Memcached客戶端最後就是著名的lognet
Memcached Providers的配置很方便首先就是在NET項目中引用上述提到的個DLL文件然後就需要修改項目的配置文件如果是桌面程序就修改APPCONFIG如果是WEB程序就修改WEBCONFIG
首先在configSections節點下增加如下配置
<section name=cacheProvider type=MemcachedProvidersCacheCacheProviderSection MemcachedProviders allowDefinition=MachineToApplication restartOnExternalChanges=true/>
<sectionGroup name=>
<section name=memcached type=EnyimCachingConfigurationMemcachedClientSection EnyimCaching />
</sectionGroup>
<section name=lognet type=lognetConfigLogNetConfigurationSectionHandlerlognet/>
接著在configuration節點下增加Enyim的配置節點
<> <memcached> <servers> <! put your own server(s) here>
<add address= port= /> </servers>
<socketPool minPoolSize= maxPoolSize= connectionTimeout=:: deadTimeout=:: />
</memcached>
</>
最後就是在configuration節點下增加Lognet的配置節點
<lognet> <appender name=ConsoleAppender type=lognetAppenderConsoleAppender>
<layout type=lognetLayoutPatternLayout>
<conversionPattern value=%date [%thread] %level %logger [%property{NDC}] %message%newline />
</layout>
</appender>
<root>
<priority value=WARN/>
<appenderref ref=ConsoleAppender>
<filter type=lognetFilterLevelRangeFilter>
<levelMin value=WARN/>
<levelMax value=FATAL/>
</filter>
</appenderref>
</root></lognet>
最後做一個簡單的測試
TestMethod]public void TestMethod()
{
string key = mykey; string value = Success!!!; DistCacheAdd(key value);
//存數據 ThreadSleep(); string ret = (string)DistCacheGet(key);
//讀數據 AssertAreEqual(value ret);
//驗證
}
整個過程下來比較順利基本沒有遇到問題這一切准備完畢以後就可以進入測試了PHPJAVAPython等程序語言的Memcached客戶端是比較多的而NET平台的客戶端卻只有個如果打算在NET程序中使用MemcachedMemcached Providers也是一個不錯的選擇
From:http://tw.wingwit.com/Article/program/net/201311/12880.html