Memcached 安装和客户端配置

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

可以先尝试一个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     }
View Code
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     }
View Code
1 MemcachedPorvider.Set("key1", new List<int> { 1, 2 });
2 List<int> list= MemcachedPorvider.Get("key1") as List<int>;
View Code

 调试一下,一个memcached get 和 set 就操作完成了。

posted on 2015-02-11 15:43  张日海  阅读(376)  评论(0编辑  收藏  举报

导航