• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#Cache缓存读取设置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

因为之前用的是Redis,准备用继续Redis缓存某些小table的数据(主外键之类的),无奈不知道外网地址,问老大,曰:用Cache做吧。好吧......

网上找了一番,好多缺少引用的,添加了也没好,弄了大概一个多小时,发现很无奈啊,突然想到以前的项目里面好像有用过吼~

简直不要太容易啊~~~


下面步入正题了:

先创建一个CacheHelper.cs类,代码如下

[csharp] view plain copy
  1. using System;  
  2. using System.Web;  
  3. using System.Collections;  
  4. using System.Web.Caching;  
  5.   
  6. public class CacheHelper  
  7. {  
  8.     /// <summary>  
  9.     /// 获取数据缓存  
  10.     /// </summary>  
  11.     /// <param name="cacheKey">键</param>  
  12.     public static object GetCache(string cacheKey)  
  13.     {  
  14.         var objCache = HttpRuntime.Cache.Get(cacheKey);  
  15.         return objCache;  
  16.     }  
  17.     /// <summary>  
  18.     /// 设置数据缓存  
  19.     /// </summary>  
  20.     public static void SetCache(string cacheKey, object objObject)  
  21.     {  
  22.         var objCache = HttpRuntime.Cache;  
  23.         objCache.Insert(cacheKey, objObject);  
  24.     }  
  25.     /// <summary>  
  26.     /// 设置数据缓存  
  27.     /// </summary>  
  28.     public static void SetCache(string cacheKey, object objObject, int timeout = 7200)  
  29.     {  
  30.         try  
  31.         {  
  32.             if (objObject == nullreturn;  
  33.             var objCache = HttpRuntime.Cache;  
  34.             //相对过期  
  35.             //objCache.Insert(cacheKey, objObject, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null);  
  36.             //绝对过期时间  
  37.             objCache.Insert(cacheKey, objObject, null, DateTime.Now.AddSeconds(timeout), TimeSpan.Zero, CacheItemPriority.High, null);  
  38.         }  
  39.         catch (Exception)  
  40.         {  
  41.             //throw;  
  42.         }  
  43.     }  
  44.     /// <summary>  
  45.     /// 移除指定数据缓存  
  46.     /// </summary>  
  47.     public static void RemoveAllCache(string cacheKey)  
  48.     {  
  49.         var cache = HttpRuntime.Cache;  
  50.         cache.Remove(cacheKey);  
  51.     }  
  52.     /// <summary>  
  53.     /// 移除全部缓存  
  54.     /// </summary>  
  55.     public static void RemoveAllCache()  
  56.     {  
  57.         var cache = HttpRuntime.Cache;  
  58.         var cacheEnum = cache.GetEnumerator();  
  59.         while (cacheEnum.MoveNext())  
  60.         {  
  61.             cache.Remove(cacheEnum.Key.ToString());  
  62.         }  
  63.     }  
  64. }  

引用也贴在上面了,就这么几个。

然后是调用:


[csharp] view plain copy
  1. public IEnumerable<CompanyModel> FindCompanys()  
  2.         {  
  3.             var cache = CacheHelper.GetCache("commonData_Company");//先读取  
  4.             if (cache == null)//如果没有该缓存  
  5.             {  
  6.                 var queryCompany = _base.CompanyModel();//从数据库取出

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#通关手册(持续更新......)发布时间:2022-07-13
下一篇:
C++中的INL(转)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap