第9章 缓存技术

缓存的目的:提高服务器的反应速率,提高程序性能.
从分布来说缓存可分为:客户端缓存和服务器端缓存
ASP.NET缓存主要分为页面缓存和数据缓存.
页面缓存的使用方法如下:
在aspx页面的顶部加: <%@ OutputCache Duration="60" VaryByParam="none"%>
 Duration:缓存时间
 VaryByParam:缓存改变的条件
注意:用户控件(.ascx文件)中的@OutputCache指令不支持此属性.

下面是一个缓存类以及缓存方法的调用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.Web.Caching;

namespace test
{
    public class Cache
    {
        /// <summary>
        /// 获取当前应用程序指定CacheKey的Cache对象值
        /// </summary>
        /// <param name="CacheKey">索引键值</param>
        /// <returns>返回缓存对象</returns>
        public static object GetCache(string CacheKey)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            return objCache[CacheKey];
        }

        /// <summary>
        /// 获取当前应用程序指定CacheKey的Cache对象值
        /// </summary>
        /// <param name="CacheKey">索引键值</param>
        /// <param name="objObject">缓存对象</param>
        public static void SetCache(string CacheKey, object objObject)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            objCache.Insert(CacheKey, objObject);
        }

        /// <summary>
        /// 获取当前应用程序指定CacheKey的Cache对象值
        /// </summary>
        /// <param name="CacheKey">索引键值</param>
        /// <param name="objObject">缓存对象</param>
        /// <param name="absoluteExpiration">绝对过期时间</param>
        /// <param name="slidingExpiration">最后一次访问所插入对象时与该对象过期时之间的时间间隔</param>
        public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            objCache.Insert(CacheKey,objObject,null,absoluteExpiration,slidingExpiration);
        }
    
    //调用缓存
        protected void Page_Load(object sender, EventArgs e)
        {
            string CacheKey = "cachetest";
            object objModel = GetCache(CacheKey);//从缓存中获取
            if (objModel != null)
            {
                int CacheTime = 30; //缓存时间30秒
                SetCache(CacheKey,objModel,DateTime.Now.AddSeconds(CacheTime),TimeSpan.Zero);   //写入缓存
            }
        }
    }
}

所以通过使用Cache对象来管理缓存.Insert()方法添加缓存,Remove()方法移除缓存项.

posted @ 2013-12-22 12:28  mmww  阅读(115)  评论(0)    收藏  举报