windows .NET 环境下Memcached 安装和客户端配置
服务端安装:
1:下载windows 版的Memcached 网上找链接
2:解压到某个磁盘C:memcache
3:安装Memcached
用cmd 进到C:memcache
输入 memcached.exe -d install 安装memcached
输入 memcached.exe -d start 启动memcached
memcached.exe -help 查询帮助
4:telnet 连接到服务端进行测试
先确保windows telnet 服务已启用
在cmd 中输入telnet 127.0.0.1 11211 连接到服务端
输入下面命令:
set name 0 0 7 回车
zhangrh 回车
会提示stored
get name 回车
会返回原来的值
客户端配置:
下面用到的是memcacheddotnet C#版——网上找链接。下载后需要在project 中引用下面几个DLL
使用这个客户端还先需要配置log4net。
在这里我是新建了一个WEB 应用程序。
web.config 加入如下配置
<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <!-- Define some output appenders --> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="log" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="10" /> <param name="MaximumFileSize" value="5MB" /> <param name="RollingStyle" value="Date" /> <param name="DatePattern" value="yyyyMMdd'.txt'"/> <param name="StaticLogFileName" value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--<threshold value="OFF" />--> <!-- Setup the root category, add the appenders and set the default priority --> <root> <priority value="WARN"/> <level value="ALL"/> <appender-ref ref="RollingFileAppender"> </appender-ref> </root> </log4net> <system.web> <compilation debug="true" targetFramework="4.0" /> </system.web> </configuration>
可以先尝试一个log4net 是否配置成功
1 public class Log 2 { 3 private static readonly ILog log = LogManager.GetLogger(typeof(Log)); 4 5 public static void Configure() 6 { 7 //启用log 8 log4net.Config.XmlConfigurator.Configure(); 9 } 10 11 public static void LogInfo(string message) 12 { 13 if (log.IsInfoEnabled) 14 { 15 log.Info(message); 16 } 17 } 18 public static void LogError(string message, Exception ex) 19 { 20 if (log.IsErrorEnabled) 21 { 22 log.Error(message, ex); 23 } 24 } 25 26 }
1 Log.Configure(); 2 Log.LogInfo("写一条日志");
如果配置成功,会在站点的根目录的log 文件夹里写入一个日志文件。
然后正真使用memcached 客户端
前先初始化SockIOPool 初始化一次即可 ,这次服务器只有一台。这个客户端也没有实现 consistent hashing
1 public class MemcachedPorvider 2 { 3 4 static MemcachedPorvider() 5 { 6 //初始化SockIOPool 7 string[] serverlist = { "127.0.0.1:11211" }; 8 // initialize the pool for memcache servers 9 SockIOPool pool= SockIOPool.GetInstance(); 10 pool.SetServers(serverlist); 11 12 13 pool.InitConnections = 3; 14 pool.MinConnections = 3; 15 pool.MaxConnections = 5; 16 17 pool.SocketConnectTimeout = 1000; 18 pool.SocketTimeout = 3000; 19 20 pool.MaintenanceSleep = 30; 21 pool.Failover = true; 22 23 pool.Nagle = false; 24 pool.Initialize(); 25 } 26 private MemcachedPorvider() 27 { 28 29 } 30 31 public static bool Set(string key, object value) 32 { 33 MemcachedClient mc = new MemcachedClient(); 34 mc.EnableCompression = false; 35 return mc.Set(key, value, DateTime.Now.AddDays(319)); 36 } 37 public static object Get(string key) 38 { 39 MemcachedClient mc = new MemcachedClient(); 40 mc.EnableCompression = false; 41 return mc.Get(key); 42 } 43 }
1 MemcachedPorvider.Set("key1", new List<int> { 1, 2 }); 2 List<int> list= MemcachedPorvider.Get("key1") as List<int>;
调试一下,一个memcached get 和 set 就操作完成了。