.NET中的缓存依赖的开启及使用(一)
服务:IIS 7.5
软件:Sql Server 2008
一、概念
这里说的缓存的概念区别于CPU中的缓存,CPU中的缓存是存储数据的存储器,CPU将经常访问的数据存放在缓存中(如一级缓存,二级缓存等),这样可以大大提高CPU读取数据的速度。
而这里据说的缓存则是存储在内存中的数据,当程序需要读取数据和文件时会首先从缓存中查找,如果缓存中没有才从硬盘等硬件存储设备中查找,这样可以有效地提高程序读取数据的速度。
什么是缓存依赖呢?
数据被缓存到内在中后,当源数据发生了改变,而缓存在内存中的数据还没有改变,这时就需要清理掉内存中已经缓存的旧数据,以便程序能访问到最新的数据,而这个过程就是通过缓存依赖来完成的。
二、使用
这里仅介绍数据库缓存依赖在ASP.NET网站中使用的具体步骤
开启数据库缓存依赖步骤:
1.网站配置文件(Web.config)中配置连接字符串(connectionStrings)和缓存(caching)配置节,如下:
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=DATABASE;Integrated Security=true;" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<caching>
<!--启动缓存依赖,每5秒轮询一次-->
<sqlCacheDependency enabled="true" pollTime="5000">
<databases>
<add name="DATABASE" connectionStringName="ConnectionString" pollTime="5000" />
</databases>
</sqlCacheDependency>
</caching>
</system.web>
注意:需要注意配置节的位置,不要写错位置。
2.找到aspnet_regsql命令的位置
方法一:
如果你安装了Visual Studio,你可以使用 VS的开发人员命令提示符,这个工具直接可以使用aspnet_regsql这个命令。
方法二:
一般情况下aspnet_regsql命令所在的位置如下:
C:\Windows\Microsoft.NET\Framework\v4.0.30319
或者
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
这里的路径区分起来也很简单,也就是32位和64位,以及.NET的版本的区分,选择那一个都可以用(这里仅指开启缓存依赖的命令,其他命令还没做过尝试,不知道会不会有影响)。
3.使用aspnet_regsql命令为数据库开启缓存依赖
aspnet_regsql -S . -E -ed -d DATABASE -et -t TABLE
或者
aspnet_regsql -C "Data Source=.;Initial Catalog=DATABASE;Integrated Security=true;" -ed -et -t TABLE
aspnet_regsql缓存依赖参数介绍:
-S <服务器> :指定正在运行 SQL Server 并且将安装或者已安装数据库的计算机的名称。
-U <登录 ID> :要用来登录的 SQL Server 用户 ID。 此选项还要求使用密码 (-P) 选项。 如果要使用 Windows 凭据 (-E) 进行身份验证,则此选项不是必需的。
-P <密码> :要用来登录的 SQL Server 密码。 此选项还要求使用用户 ID (-U) 选项。 如果要使用 Windows 凭据 (-E) 进行身份验证,则此选项不是必需的。
-E :使用当前登录用户的 Windows 凭据进行身份验证。
-d <database> 指定要与 SQL 缓存依赖项一起使用的数据库的名称。还可以选择使用连接字符串选项 -C 指定该数据库。
-ed 为 SQL 缓存依赖项启用数据库。
-dd 为 SQL 缓存依赖项禁用数据库。
-t <table> 指定要启用或禁用以便与 SQL 缓存依赖项一起使用的表名。此选项必须与 -et 或 -dt 选项一起使用。
-et 为 SQL 缓存依赖项启用表。在参数字符串中还必须包括 -t 选项。
-dt 为 SQL 缓存依赖项禁用表。在参数字符串中必须包括 -t 选项。
-lt 列出所有为 SQL 缓存依赖项启用的表。