zoukankan      html  css  js  c++  java
  • HttpRuntime.Cache在ASP.NET的使用

    一.缓存:

    • 5个等级的缓存
      1. 1级是网络级缓存,缓存在浏览器,CDN以及代理服务器中   (举个例子:每个帮助页面都进行了缓存,访问一个页面的代码非常简单)
      2. 2级是由.net框架 HttpRuntime.Cache完成,在每台服务器的内存中。
      3. 3级Redis,分布式内存键值存储,在多个支撑同一个站点的服务器上共享缓存项。
      4. 4级SQL Server Cache,整个数据库,所有数据都被放到内存中。
      5. 5级SSD。通常只在SQL Server预热后才生效

    二.具体使用

            添加cachehelper类

     /// <summary>
        /// 缓存帮助类
        /// 时间:2016/05/07
        /// </summary>
        public class CacheHelper
        {
            #region 获取数据缓存
    
            /// <summary>
            /// 获取数据缓存
            /// </summary>
            /// <param name="cacheKey"></param>
            /// <param name="objObject"></param>
            public static object GetCache(string cacheKey)
            {
                var objCache = HttpRuntime.Cache;
                return objCache[cacheKey];
            }
            #endregion
    
            #region 设置数据缓存
            /// <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, TimeSpan timeout)
            {
                var objCache = HttpRuntime.Cache;
                objCache.Insert(cacheKey, objObject, null, DateTime.MaxValue, timeout, CacheItemPriority.NotRemovable, null);
            }
    
            /// <summary>
            /// 设置数据缓存
            /// </summary>
            public static void SetCache(string cacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)
            {
                var objCache = HttpRuntime.Cache;
                objCache.Insert(cacheKey, objObject, null, absoluteExpiration, slidingExpiration);
            }
            #endregion
    
            #region 移除缓存
            /// <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;
                IDictionaryEnumerator cacheEnum = cache.GetEnumerator();
                while (cacheEnum.MoveNext())
                {
                    cache.Remove(cacheEnum.Key.ToString());
                }
            }
            #endregion      
        }
    View Code

           添加完对此进行调用先判断是否已经cache没有则添加

    var cacheKey = "sid" + assessId + "uid" + studentId + "pindex" + pageHelper.PageIndex;
                var cachelist = CacheHelper.GetCache(cacheKey) as List<Question>;
                if (cachelist != null)
                {
                    return cachelist;
                }
    获取数据
    
        var result = GetAssessQuseList(pageHelper, tableName, fields, null, orderBy, true, studentId, otherFields);
                CacheHelper.SetCache(cacheKey, result, TimeSpan.FromSeconds(120));
                return result;
    View Code

      下面是移除cache

     var cacheKey = "sid" + assessId + "uid" + base.LoggingUser.UserId + "pindex" + pageIndex;
                var cachelist = CacheHelper.GetCache(cacheKey) as List<Question>;
                if (cachelist != null)
                {
                    CacheHelper.RemoveAllCache(cacheKey);
    
                }
    View Code
  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal leetcode java
    win7-X64用死性不改的系统安装锐起网吧无盘V4.5 Build 3535_64位客户端老不出物理映射盘的问题
    routeros ros M ikrotik 硬件产品命名规则
    CentOS下配置常用Tunnel隧道gre,ipip
    pptp隧道断了以后,重拨也不通的情况。新any可能出现的几个问题,包括T人下线的方法
    MariaDB(mysql)+daloRADIUS 导入数据库导入用户的方法
    centos策略路由-基于源地址的策略路由ip rule
    2019年逾期率上升_24家头部P2P平台最新运营数据解读:8家近一年逾期率走势曝光
    关于逾期率你所不知道的秘密
    Vintage_坏客户定义
  • 原文地址:https://www.cnblogs.com/songStar/p/8493938.html
Copyright © 2011-2022 走看看