曹永思

导航

asp.net下配置使用Memcached 如何使用Memcached .ne使用BeITMemcached.dllt配置Memcached的方法

首先在项目中引用 BeITMemcached.dll

在Web.config中配置节点

    <configSections> 
        <section name="beitmemcached" type="System.Configuration.NameValueSectionHandler" />
    </configSections>
<!--必须紧接着configSections节点添加beitmemcached节点-->
    <beitmemcached>
        <add key="mem176" value="192.168.1.108:11211" />
    </beitmemcached>

操作缓存的类

    public class MemcachedHelper
    {
        BeIT.MemCached.MemcachedClient cache;
        public MemcachedHelper(string cacheServer)
        {
            string server = "mem176";
            if (!string.IsNullOrEmpty(cacheServer))
                server = cacheServer;
            cache = BeIT.MemCached.MemcachedClient.GetInstance(server);
        }

        /// <summary>
        /// 写入缓存
        /// </summary>
        /// <param name="key"></param>
        /// <param name="val"></param>
        /// <returns></returns>
        public bool Set(string key, object val)
        {
            key = key.Replace(" ", "");
            if (cache != null)
                cache.Set(key, val, DateTime.Now.AddHours(2));
            return false;
        }

        /// <summary>
        /// 写入缓存
        /// </summary>
        /// <param name="key"></param>
        /// <param name="val"></param>
        /// <param name="expiry"></param>
        /// <returns></returns>
        public bool Set(string key, object val, DateTime expiry)
        {
            key = key.Replace(" ", "");
            if (cache != null)
                cache.Set(key, val, expiry);
            return false;
        }

        /// <summary>
        /// 读取缓存
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public object Get(string key)
        {
            object obj = null;
            if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Request["delcache"] == "true")
                return null;
            key = key.Replace(" ", "");
            if (cache != null)
                obj = cache.Get(key);
            return obj;
        }
    }
View Code

关于调用的类

 public class Article 
    {

        private static readonly DAL.Article dal = new DAL.Article();
        private static MemcachedHelper cache = new MemcachedHelper("mem176"); 

  public ArticleInfo GetArticleInfo(int articleId)
        {
            ArticleInfo result = null;
            string key = cacheKey + "_ArticleInfo_" + articleId;
            object obj = cache.Get(key);
            if (obj != null)
                result = (ArticleInfo)obj;
            else
            {
                result = dal.Get(articleId);
                if (result != null)
                    cache.Set(key, result);
            }
            return result;
        }
    }
View Code

 下载BeITMemcached.dll

posted on 2015-03-30 16:55  曹永思  阅读(454)  评论(0编辑  收藏  举报