.NET平臺上的Memcached客戶端介紹
早上接到一個任務,需要對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也是一個不錯的選擇。
全站熱搜