学而实习之 不亦乐乎

.NET中的缓存依赖的开启及使用(一)

2020-12-17 20:15:36
系统:Windows Server 2008
服务: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缓存依赖参数介绍

-C <连接字符串>:指定要连接到正在运行 SQL Server 并且将安装或者已经安装数据库的计算机的连接字符串。 如果您仅指定服务器 (-S) 和登录(-U 和 -P,或 -E)信息,则此选项不是必需的。 
-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 缓存依赖项启用的表。