• C# Cache缓存读取设置


    原文:https://www.cnblogs.com/xuhongfei/p/8951878.html

    先创建一个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 == null) return;  
    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();//从数据库取出  
    7.                 var enumerable = queryCompany.ToList();  
    8.                 CacheHelper.SetCache("commonData_Company", enumerable);//添加缓存  
    9.                 return enumerable;  
    10.             }  
    11.             var result = (List<CompanyModel>)cache;//有就直接返回该缓存  
    12.             return result;  
    13.         }  


    测试结果也贴上来看看好了:


    首次加载进来是为null,然后读取数据库,添加进缓存,当前返回前台的是从数据库中取出的数据。


    刷新页面,发现缓存中已经有了读出的30条数据,


    然后接下来走,返回缓存中的数据:

    大致这些了。

    End

  • 相关阅读:
    2021年中国DevOps现状调查报告发布!
    带你看清梦饷集团如何成为上海在线新经济四小龙
    AI论文解读丨融合视觉、语义、关系多模态信息的文档版面分析架构VSR
    云图说 | 华为云医疗智能体,智联大健康,AI药物研发
    带你走进“华为链”
    初学者入门知识图谱必看的能力:推理
    带你探索CPU调度的奥秘
    鸿蒙轻内核定时器Swtmr:不受硬件和数量限制,满足用户需求
    FLINK基础(137):DS流与表转换(3) Handling of (Insert-Only) Streams(2)fromDataStream(FLINK1.13以上)
    FLINK基础(136):DS流与表转换(2) Handling of (Insert-Only) Streams(1)简介(FLINK1.13以上)
  • 原文地址:https://www.cnblogs.com/zhang1f/p/11342765.html
Copyright © 2020-2023  润新知