早上接到一个任务需要对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也是一个不错的选择