相聚一刻

相聚一刻

导航

初学Memcache

Posted on 2013-04-26 21:55  相聚一刻  阅读(189)  评论(0编辑  收藏  举报

首先下载Memcache window版本,然后解压后拷贝文件到c:\Memcache

在命令执行窗口输入 c:\memcached\memcached.exe -d install

安装成功后执行 c:\memcached\memcached.exe -d start 启动

启动成功后,在系统服务列表中,可以看到memcached服务,服务器端安装成功。

 

下载地址  http://memcachedproviders.codeplex.com/.net客户端,新建web网站,将MemcachedProviders.dll,Enyim.Caching.dll,log4net.dll添加到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"/>
  </configSections>
  <enyim.com>
    <memcached>
      <servers>
        <!-- put your own server(s) here-->
        <add address="127.0.0.1" port="11211"/> //服务器列表
      </servers>
      <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:10" deadTimeout="00:02:00"/>
    </memcached>
  </enyim.com>
  <cacheProvider defaultProvider="MemcachedCacheProvider">
    <providers>
      <add name="MemcachedCacheProvider" type="MemcachedProviders.Cache.MemcachedCacheProvider, MemcachedProviders" keySuffix="_MySuffix_" defaultExpireTime="2000"/>
    </providers>
  </cacheProvider>
  <log4net>
    <!-- Define some output appenders -->
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <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"/>
      <appender-ref ref="ConsoleAppender">
        <filter type="log4net.Filter.LevelRangeFilter">
          <levelMin value="WARN"/>
          <levelMax value="FATAL"/>
        </filter>
      </appender-ref>
    </root>
  </log4net>

后台代码实现

       string key = "user_info";//key值
        object obj = new object();
        string result = string.Empty;
        if (DistCache.Get(key)!=null ) //测试缓存中是否存在key的值
        {
            result = DistCache.Get(key).ToString();
        }
        else
        {
            Thread.Sleep(10000);
            result = "测试";
            DistCache.Add(key, result);
        }

        Response.Write(result);