第二十二讲 使用缓存优化程序性能

主要内容
    1. 掌握缓存的基本实现
    2. 用缓存技术改善应用程序性能

    缓存技术=既重要又简单的技术
        1. 缓存大提高了数据访问效率
        2. 但也存在一个缓存数据过期的问题

    针对缓存过期问题ASP.NET提供了三种解决方案
        1. 整页缓存
            最简单,最常用的缓存形式,它缓存整个页面
            适用页面:不需要频繁更新数据,占用大量时间和资源编译

            指令:
            <%@OutputCache
                Duration="5" //最常用属性,单位是秒
                VaryByParam="id;name" //最常用属性
                    对这个参数的理解:当这个属性值被设置时,缓存就会以属性值中的参数变量进行缓存,如:当ID为1时服务器将在内存中生成一个缓存页面,如果ID变成2,那么服务器将会增加一个因为ID不同的另一个缓存页面。
                    那么如果有100个ID,那么就会缓存100个页面。当然,如果你的Duration设置的时间够长的话才会这样,如果设置是一秒就不会了。呵呵。

                VaryByControl="none"
                Location="any"
                VaryByCustom="browser"
            %>

        2. 页面部分缓存
            1. 缓存页面的一部分(智商没问题的都知道!)
            2. 适用页面:页面内部某些部分每次请求时都需要保持最新数据
            3. 用来实现页面部分缓存的常用方法:缓存后替换
            4. 缓存后替换:缓存整个页面,替换页面中不需要缓存的部分,常用Substitution控件实现。

            重点:Substitution控件的使用
                它最有价值的属性就是:MethodName
                MethodName属性需要满足3个条件:
                    1. 必须是个静态的方法
                    2. 返回值必须是string类型
                    3. 参数必须是HttpContext类型
                    如:
                    public static string GetNum(HttpContext context)
                    {
                        return "";
                    }

            理解:如一个页面,大部分的内容很长时间都不会去修改,但有特别的几处,需要时时更新,如页面的点击率等。那这个要时时更新的部分就要使用Substitution控件来代替它,然后为Substitution的MethodName属性指定个静态的返回值是字符,且参数是HttpContext类型的方法,这个方法就是能简单的返回需要时时更新的部分内容就可以了。

            Substitution控件就是一个能替换缓存页面中部分内容的功能。注意是缓存页面哦,即在内存中实现的这个步骤。


        3. 应用程序缓存
            1. 存储与应用程序相关的对象
            2. 使用比较灵活,可以用来实现有条件控制的缓存

            这个应用程序缓存跟前面课程里讲的Application对象一样,使用方式也是一样的。但是,Application是一个应用程序级对象,而应用程序缓存是存储在服务器内存当中的,这个跟Application不一样。
    
            应用程序缓存使用是Cache对象。如:
            Cache["value"]="我是来自Cache对象中的数据!";

            测试效果同Application对象是一样的,它的生命周期跟Application不一样的是,Application是,服务器的下次重启之前!而应用程序缓存Cache的生命周期是,当服务器内存不够用的时候,服务器就会将它释放掉!同时,如果给Cache对象设置了过期时间,它也会被自动释放。


        4. 作业:自学MemberCache方式的缓存实现










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值