ASP.NET 下SQLServer2005 缓存依赖
参考了网上得博客写的缓存依赖..感觉不错.今天测试了下.在此记录一下:
SqlSrever2005 内置了缓存依赖功能,这篇文章主要介绍 Sql2005下的缓存依赖,Sql2000
数据库由于使用的较少,暂不做介绍..
1 首先开启数据库的缓存依赖功能:
aspnet_regsql -S <server> -U sa -P sa -d <database> -ed 启动数据库的数据缓存依赖功能
aspnet_regsql -S <server> -U sa -P sa -d <database> -t <table> -et 启动数据表的数据缓存依赖功能
2 检测是否启用了Service Broker
Select DATABASEpRoPERTYEX(‘数据库名称’,'IsBrokerEnabled')
---1 表示启用,0表示没启用
启用Service Broker
ALTER DATABASE 数据库名称 SET ENABLE_BROKER;
3 然后需要在Global.asax 文件了里显式的启动接受依赖项更改通知的侦听器
//connectionString 为数据库连接字符串
//Application_Start 事件
System.Data.SqlClient.SqlDependency.Start(connectionString);
//Application_End 事件
System.Data.SqlClient.SqlDependency.Stop(connectionString);
4 应用程序数据缓存中使用
SqlCommand command = new SqlCommand(sql, conn);
SqlCacheDependency scd = new SqlCacheDependency(command);
HttpContext.Current.Cache.Insert("缓存的键值", scd, null);
OK,大功告成..
另外还需要配置WebConfig:
<connectionStrings>
<add name="testCache" connectionString="data source = .;initial catalog = TestDb;user id = sa ;password =sasasa " providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true" pollTime="1000">
<databases>
<add name="abico" connectionStringName="testCache"/>
</databases>
</sqlCacheDependency>
</caching></system.web>
pollTime是缓存的事件 以秒为单位。
附:
Service Broker 是SqlServer 里的消息队列,具体的可以参考:
http://blog.entlib.com/EntLib/archive/2009/03/08/sql-server-service-broker.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步