缓存数据(转)

本文深入探讨了缓存技术如何通过减少数据库访问频率,显著提升Web站点的响应速度和性能。通过使用ApplicationObject存储全局信息,实现对不频繁更新的数据进行预生成和存储,从而避免重复读取数据库,加速站点加载。
甚麽是缓存(cache)? 缓存是将相对高速的存储设备作为相对低速的存储设备与系统之间I/O的缓冲区,它能大幅提高系统的性能.

对于Web站点来说,缓存数据就是将用户每次访问你的站点时需要动态生成的信息预先生成并存储在内存中,以静态的形式送给用户. 这么说太抽象了,让我们来举个例子说明甚麽是站点的缓存. 假设你的站点有一个更新不是很频繁的下拉式列表框,列表框中的选项当用户访问站点时从数据库中取出,我们可以将这些选项预先取出,存放在内存中以提高性能.

Application Object
Application Object能保存整个应用的全局信息. 换言之,它存储着站点的全局信息. 每个站点都被认为是一个应用,你可以在global.asa中利用Application Object存储你的信息.

让我们来看看示例程序. 在这个例子里,我将Application Object作为一个变量用来存储下拉菜单的菜单项. 当每次需要从数据库中读取菜单项的时候,我们从变量中读取,避免了对数据库的频繁访问.

请看以下的代码(我写了详尽的注释来解释每行代码的含意):

'here we define the variable'
as an a application object
ListBox = Application("ListBox")

'we then check to see if it is already set
If ListBox = "" Then

'it's not, so we go to the database and retrieve it
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=travel;UID=;PWD="

sql = "SELECT * FROM types"

Set rs = oConn.Execute(sql)

crlf = chr(13) & chr(10)

'Now we assign the recordset to the 'ListBox'
'variable using a loop
ListBox = "" & crlf
Do Until rs.EOF

Listbox = ListBox & " " & _
rs("type") & "" & crlf
rs.MoveNext

Loop

'we then assign the variable to the
'Application object below
Application("ListBox") = ListBox

End If
%>


从代码中我们可以看出,数据只有第一次被读取时访问数据库,然后将之存储在
Application object中,以后每次都从缓存中读取,这样将会加快站点的速度. 并不是每个站点都需要缓存来提高速度,但如果你的站点上运行着复杂的应用程序,且你想让系统获得最优的性能,那么你最好考虑一下缓存数据


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124549/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-124549/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值