ASP.NET学习笔记[缓存篇]
时间:2005-05-18 来源:bandt
提出了一种把数据库数据和缓存中数据关联的方法,但安全性稍差。
1.Cache对象支持清扫(scavenging):当系统资源不足时,它会自动从缓存中删除低优先级的或不常用的项。
2.在从缓存中获取一个项后,应当检查看该项是否为nothing。如果为nothing,就需要把该项重新赋值给缓存。
3.在添加一个项到缓存中时,可以把该项与一个文件关联。如果文件发生变化,则该项被自动从缓存中删除:Cache.Insert("itemName","itemValue!",New CacheDependency(MapPath("fileName.txt")))
4.设置缓存依赖,当数据库数据发生变化时,清除缓存中相应的项:
1.首先创建一个触发器:
CREATE TRIGGER UpdateCache
ON Products
FOR UPDATE, DELETE, INSERT
AS
DECLARE @cmd Varchar( 200 )
SELECT @cmd = 'echo ' + Cast( getDATE() As Varchar( 50 ) ) +
' > c:dataTableChange.txt'
EXEC master..xp_cmdshell @cmd, no_output
2.测试页面
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<head><title>test.aspx</title>
</head>
<body>
<asp:DataGrid
ID="dgrdProducts"
Runat="Server" />
</body>
</html>
注:该方法调用xp_cmdshell存储过程来完成该功能,则需要赋予访问者管理员权限,安全性差。慎用!