一.如果用官方提供的方法,在web.config里面配置好了各个参数和服务器IP。如下图:

<?xml version="1.0"?>
<configuration>
  <configSections>   
     <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 protocol="Text">
      <servers> 
        <add address="127.0.0.1" port="11211" />
        <add address="127.0.0.1" port="11212" />
        <add address="127.0.0.1" port="11213" />
        <add address="127.0.0.1" port="11214" />
      </servers>
      <socketPool minPoolSize="10" maxPoolSize="100" connectionTimeout="00:00:05" deadTimeout="00:02:00" />
    </memcached>
  </enyim.com> 
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
</configuration>

则使用该通用类即可,组件自动调用web.config里面的配置。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Enyim.Caching;
using Enyim.Caching.Configuration;
using Enyim.Caching.Memcached;

/// <summary>
/// MemberHelper 的摘要说明
/// </summary>
public abstract class MemberHelper
{
    public MemberHelper()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    #region 添加缓存
    /// <summary>
    /// 添加缓存(键不存在则添加,存在则替换)
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <returns></returns>
    public static bool AddCache(string key, object value)
    {
        using (MemcachedClient mc = new MemcachedClient())
        {
            return mc.Store(StoreMode.Set, key, value);
        }
    }
    #endregion

    #region 添加缓存
    /// <summary>
    /// 添加缓存(键不存在则添加,存在则替换)
    /// </summary>
    /// <param name="key"></param>
    /// <param name="value"></param>
    /// <param name="minutes">缓存时间(分钟)</param>
    /// <returns></returns>
    public static bool AddCache(string key, object value, int minutes)
    { 
        using (MemcachedClient mc = new MemcachedClient())
        {
            return mc.Store(StoreMode.Set, key, value, DateTime.Now.AddMinutes(minutes));
        }
    }
    #endregion

    #region 获取缓存
    /// <summary>
    /// 获取缓存
    /// </summary>
    /// <param name="key"></param>
    /// <returns>返回缓存,没有找到则返回null</returns>
    public static object GetCache(string key)
    {
        using (MemcachedClient mc = new MemcachedClient())
        {
            return mc.Get(key);
        }
    }
    #endregion

    #region 是否存在该缓存
    /// <summary>
    /// 是否存在该缓存
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    public static bool IsExists(string key)
    {
        using (MemcachedClient mc = new MemcachedClient())
        {
            return mc.Get(key) != null;
        }
    }
    #endregion

    #region 删除缓存(如果键不存在,则返回false)
    /// <summary>
    /// 删除缓存(如果键不存在,则返回false)
    /// </summary>
    /// <param name="key"></param>
    /// <returns>成功:true失败:false</returns>
    public static bool DelCache(string key)
    {
        using (MemcachedClient mc = new MemcachedClient())
        {
            return mc.Remove(key);
        }
    }
    #endregion

    #region 清空缓存
    /// <summary>
    /// 清空缓存
    /// </summary>
    public static void FlushCache()
    {
        using (MemcachedClient mc = new MemcachedClient())
        {
            mc.FlushAll();
        }
    }
    #endregion

}
View Code

相关文章: