ASP.NET 2.0启动阶段,如何高效缓存数据以优化性能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3446个文字,预计阅读时间需要14分钟。
导语:前两章我们学习了如何在表现层和缓存层中缓存数据。在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据。在第57章,我们讨论了创建一个独立的缓存层。
导言:
前面2章考察了在表现层和缓存层缓存数据。在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据。在第57章,我们探讨了创建一个单独的分开的缓存层。这2章都是采用“应激装载”(reactive loading)的模式来缓存数据。该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源——比如数据库,来获取数据,然后将其存储在内存里。该模式的优势在于执行起来很容易;而缺点之一在于应“请求”(requests)而执行。试想一下,在前面章节,我们通过缓存层来展示产品信息,当第一次登录该页面,或缓存数据因为缓存时间结束等原因从内存清除以后,再次访问该页面时,因为数据没有储存在内存里,请求只能从数据库获取数据。这样一来花的时间就比直接从内存获取数据要长一些。
“预装载”(Proactive loading)可以使用2种模式来预装载数据。第一种模式,Proactive loading使用一些方法( process)来判断源数据(underlying data)是否发生改变,并及时对缓存数据进行更新——比如,周期性的检查源数据;或者当源数据发生改变时,立即通知更新。不过该模式的弊端在于执行起来比较困难,你必须创建、管理、执行一个具体的方法来检查源数据的更改情况,以更新缓存数据。
另一个模式,同时也是本文要探讨的内容,就是在程序启动时便装载数据入内存。该模式对缓存静态数据(static data)尤其有用,比如查找数据库表里的记录。
本文共计3446个文字,预计阅读时间需要14分钟。
导语:前两章我们学习了如何在表现层和缓存层中缓存数据。在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据。在第57章,我们讨论了创建一个独立的缓存层。
导言:
前面2章考察了在表现层和缓存层缓存数据。在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据。在第57章,我们探讨了创建一个单独的分开的缓存层。这2章都是采用“应激装载”(reactive loading)的模式来缓存数据。该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源——比如数据库,来获取数据,然后将其存储在内存里。该模式的优势在于执行起来很容易;而缺点之一在于应“请求”(requests)而执行。试想一下,在前面章节,我们通过缓存层来展示产品信息,当第一次登录该页面,或缓存数据因为缓存时间结束等原因从内存清除以后,再次访问该页面时,因为数据没有储存在内存里,请求只能从数据库获取数据。这样一来花的时间就比直接从内存获取数据要长一些。
“预装载”(Proactive loading)可以使用2种模式来预装载数据。第一种模式,Proactive loading使用一些方法( process)来判断源数据(underlying data)是否发生改变,并及时对缓存数据进行更新——比如,周期性的检查源数据;或者当源数据发生改变时,立即通知更新。不过该模式的弊端在于执行起来比较困难,你必须创建、管理、执行一个具体的方法来检查源数据的更改情况,以更新缓存数据。
另一个模式,同时也是本文要探讨的内容,就是在程序启动时便装载数据入内存。该模式对缓存静态数据(static data)尤其有用,比如查找数据库表里的记录。

