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; } }
关于调用的类
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; } }