zoukankan      html  css  js  c++  java
  • C# Cache缓存读取设置

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

    using System;
    using System.Web;
    using System.Collections;
    using System.Web.Caching;
     
    public class CacheHelper
    {
        /// <summary>
        /// 获取数据缓存
        /// </summary>
        /// <param name="cacheKey">键</param>
        public static object GetCache(string cacheKey)
        {
            var objCache = HttpRuntime.Cache.Get(cacheKey);
            return objCache;
        }
        /// <summary>
        /// 设置数据缓存
        /// </summary>
        public static void SetCache(string cacheKey, object objObject)
        {
            var objCache = HttpRuntime.Cache;
            objCache.Insert(cacheKey, objObject);
        }
        /// <summary>
        /// 设置数据缓存
        /// </summary>
        public static void SetCache(string cacheKey, object objObject, int timeout = 7200)
        {
            try
            {
                if (objObject == null) return;
                var objCache = HttpRuntime.Cache;
                //相对过期
                //objCache.Insert(cacheKey, objObject, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null);
                //绝对过期时间
                objCache.Insert(cacheKey, objObject, null, DateTime.Now.AddSeconds(timeout), TimeSpan.Zero, CacheItemPriority.High, null);
            }
            catch (Exception)
            {
                //throw;
            }
        }
        /// <summary>
        /// 移除指定数据缓存
        /// </summary>
        public static void RemoveAllCache(string cacheKey)
        {
            var cache = HttpRuntime.Cache;
            cache.Remove(cacheKey);
        }
        /// <summary>
        /// 移除全部缓存
        /// </summary>
        public static void RemoveAllCache()
        {
            var cache = HttpRuntime.Cache;
            var cacheEnum = cache.GetEnumerator();
            while (cacheEnum.MoveNext())
            {
                cache.Remove(cacheEnum.Key.ToString());
            }
        }
    }
     
    

    然后是调用:

            public IEnumerable<CompanyModel> FindCompanys()
            {
                var cache = CacheHelper.GetCache("commonData_Company");//先读取
                if (cache == null)//如果没有该缓存
                {
                    var queryCompany = _base.CompanyModel();//从数据库取出
                    var enumerable = queryCompany.ToList();
                    CacheHelper.SetCache("commonData_Company", enumerable);//添加缓存
                    return enumerable;
                }
                var result = (List<CompanyModel>)cache;//有就直接返回该缓存
                return result;
            }
    

     测试结果:

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

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

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

     

      

  • 相关阅读:
    apt update ,apt upgrade 和 apt dist-upgrade 的区别
    CVE-2018-8639 简单利用 win7
    如何拆解性能测试需求
    博客搬家啦
    驱动开发学习一
    驱动开发基础之数据结构
    c++容器加迭代器和python装饰器的对比
    c++简单学习
    windows下z3安装
    switch反汇编
  • 原文地址:https://www.cnblogs.com/lgx5/p/10785920.html
Copyright © 2011-2022 走看看