.Net中的缓存依赖配置

缓存——能很好的提高站点的性能。

在访问量大,但更新较少的网站中使用缓存,可以大大提高运行效率;

在.net中给我们提供了很好的缓存机制,页面缓存、数据缓存,还有很好的依赖缓存。

依赖缓存好处就是,跟相依赖的项的改变有关,比如cacheTable表有数据改变时,数据已经缓存了的就会被清楚,重新读取新的数据,能保持数据的实时更新。

头几天学习了下sql 依赖缓存,实现过程和步骤记录下:

环境:windows 2003+IIS6  ,SQL2008+VS2008

一、首先在sql2008中创建数据库CacheDB,创建表CacheTable

然后在Visual Studio 命令提示下 运行aspnet_regsql.exe 应用程序(也可以在cmd下找到C:/Program Files/Microsoft Visual Studio 9.0/VC>运行)

直接运行asp.net_regsql.exe创建的是选择的数据库的其他特性表,如:aspnet_Roles  等。

下面以数据库CacheDB,数据表CacheTable为例;

要创建数据库的依赖缓存 须运行如下命令:

aspnet_regsql -S localhost -U sa  -P 123456 -d CacheDB -ed    //打开依赖的数据库,然后在创建依赖数据表

aspnet_regsql -S localhost -U sa  -P 123456 -d CacheDB -et -t CacheTable   //创建依赖数据表

当运行以上命令后会出现数据表 : AspNet_SqlCacheTablesForChangeNotification

aspnet_regsql 命令参数说明:

-? 显示该工具的帮助功能;

-S 后接的参数为数据库服务器的名称或者IP地址;

-U 后接的参数为数据库的登陆用户名;

-P 后接的参数为数据库的登陆密码;

-E 当使用windows集成验证时,使用该功能;

-d 后接参数为对哪一个数据库采用SqlCacheDependency功能;

-t 后接参数为对哪一个表采用SqlCacheDependency功能;

-ed 允许对数据库使用SqlCacheDependency功能;

-dd 禁止对数据库采用SqlCacheDependency功能;

-et 允许对数据表采用SqlCacheDependency功能;

-dt 禁止对数据表采用SqlCacheDependency功能;

-lt 列出当前数据库中有哪些表已经采用sqlcachedependency功能。

以上步骤是在数据库方面要实现处理的

二、配置网站的web.config

在system.web 节点中添加,缓存配置,代码如下

这中方式主要是采用数据查询轮询的方式

[xhtml] view
plain
copy

  1. <system.web>
  2. <!--依赖缓存-->
  3. <caching>
  4. <!--5秒种轮询一次-->
  5. <sqlCacheDependency enabled="true" pollTime="5000">
  6. <databases>
  7. <add  name="CacheDB" connectionStringName="SQLServer"/>
  8. </databases>
  9. </sqlCacheDependency>
  10. </caching>
  11. </system.web>

参数说明:pollTime:轮换的时间 (毫秒),"CacheDB" :为依赖的数据库,SQLServer :为数据库连接字符串,connectionStringName中的。

三、代码实现

1、 对页面输出缓存使用轮询SQL缓存依赖

根据上面的web.config配置

在要缓存的页面中  <%@ OutputCache Duration="6000" VaryByParam="none" SqlDependency="CacheDB:CacheTable" %>  CacheTable为数据表

当CacheTable数据表有改动时,刷新后会显示新的数据。

2、对数据缓存使用轮询SQL缓存依赖

对多个表实现依赖缓存,代码如下:

[c-sharp] view
plain
copy

  1. //这里用GridView对数据进行绑定
  2. public void BindData()
  3. {
  4. string[] tableName = new string[]{"Cache","CacheTable" };//这里用cache表和CacheTable表,cache表的数据库的依赖建立方法如cacheTable。
  5. AggregateCacheDependency aggregateDependency = new AggregateCacheDependency();//实例化AggregateCacheDependency,用于多个实例SqlCacheDependency的加载
  6. DataSet ds = Cache["gridview"] as DataSet;//从缓存中读取数据
  7. if (ds == null)
  8. {
  9. ds = DBHelper.ExecuteAdapter("select * from CacheTable inner join Cache on CacheTable.ID=Cache.cacheID");//从数据库中读取数据 ,返回DataSet,ExecuteAdapter用的SQLHelper中的访问方法
  10. foreach (string table in tableName)
  11. {
  12. aggregateDependency.Add(new SqlCacheDependency("Cache", table));//把依赖实例加载到数组中
  13. }
  14. // SqlCacheDependency Dependency = new SqlCacheDependency("Cache","CacheTable");//对单个表依赖缓存 直接实例化
  15. Cache.Insert("gridview", ds, aggregateDependency);//添加到缓存中
  16. Response.Write(DateTime.Now.ToString());//输出当前时间,以测试是否缓存成功,
  17. }
  18. GridView1.DataSource = ds;
  19. GridView1.DataBind();
  20. }

以上代码为在数据缓存中使用的依赖缓存

注意:在web.config 中的DBCahce 和页面输出缓存中的DBCache:cahceTabel中 变量的大小写要与在用aspnet_regsql.exe建立 数据缓存那大小写一样

.Net中的缓存依赖配置

时间: 2024-12-10 08:11:59

.Net中的缓存依赖配置的相关文章

Asp.net文件缓存依赖

Asp.net文件缓存依赖 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default4 : System.Web.UI.Page { /// <summary> /// 获取当前应用程序指定CacheKey的Cache对

Django分别使用Memcached和Redis作为缓存的配置(Linux环境)

1 使用memcached 1.1 安装memcached 安装(Linux) sudo apt install memcached 启动 #方式一: service memcached start # 方式二: /usr/bin/memcached -u memcache -m 1024 -p 11222 -l 0.0.0.0 -d start -d:这个参数是让memcached在后台运行 -m:指定占用多少内存.以M为单位,默认为64M. -p:指定占用的端口.默认端口是11211. -l

django缓存优化中caches参数如何配置?

在python开发中,如果运营django进行编写,为了提升效率,常常需要优化缓存,缓存优化中必须掌握的caches参数相关知识: CACHES 配置参数概述 - 格式 CACHES 字典配置格式如下 {'default': {‘BACKEND’:'django.core.cache.backends.locmem.LocMemCache’,}} 配置 CACHES 字典时必须配置 default 缓存 CACHES 配置参数概述 - BACKEND 支持的 BACKEND: 1)'django

缓存依赖中cachedependency对象

缓存依赖主要提供以下功能:1.SQL 缓存依赖项可用于应用程序缓存和页输出缓存.2.可在 SQL Server 7.0 及更高版本中使用 SQL 缓存依赖项.3.可以在网络园(一台服务器上存在多个处理器)或网络场(多台服务器运行同一应用程序)中使用 SQL 缓存依赖项.4.与 SQL 缓存依赖项关联的数据库操作比较简单,因此不会给服务器带来很高的处理成本. 现在把与缓存依赖相关的对象集合如下,并对差异性进行了一定程度的分析……        缓存依赖主要由3个核心类来实现:CacheDepend

开启SQLSERVER数据库缓存依赖优化网站性能

很多时候,我们服务器的性能瓶颈会是在查询数据库的时候,所以对数据库的缓存非常重要,那么有没有一种方法,可以实现SQL SERVER数据库的缓存,当数据表没有更新时,就从缓存中读取,当有更新的时候,才从数据表中读取呢,答案是肯定的,这样的话我们对一些常用的基础数据表就可以缓存起来,比如做新闻系统的新闻类别等,每次就不需要从数据库中读取了,加快网站的访问速度. 那么如何开启SQLSERVER数据库缓存依赖,方法如下: 第一步:修改Web.Config的<system.web>节的配置,代码如下,让

029.ASP.Net中的缓存机制

ASP.Net中的缓存 输出缓存1. 整页缓存 缓存整个页面的输出结果 Duration 缓存时间:绝对过期 VaryByParam:依据参数值缓存,没有为None,多个用;分割 Location:缓存的位置 代码在 ftp 的 Cache目录内 2. 片段缓存 使用用户控件,将需要缓存的内容放入用户控件 指定shared=true,可以多个页面共享缓存结果 3.Substitution控件 在整页都缓存的情况下,可以部分更新内容 配置MethodName属性,对应的.cs中的方法原型是 str

Hibernate中一级缓存和二级缓存

缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能.缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据. 缓存的介质一般是内存,所以读写速度很快.但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质.缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期. Hibernate的缓存包括Session的缓存和SessionFactory的缓

我用ASP.NET缓存之SQL数据缓存依赖(SqlCacheDependency)

[名词解释] 缓存(Cache)依赖,大白话解释就是缓存是否更新依赖于其它Object.那么SqlCacheDependency指的就是Cache的数据更新依赖于SQL Server数据库表的变化( 行级别更改)或者SQL 查询结果的变化. 以前也总结过缓存的使用 页面输出缓存:我用ASP.NET缓存之OutputCache 数据缓存:我用ASP.NET缓存之数据缓存 但是对缓存依赖还是很模糊,前阵子有幸在项目中实际运用了此类.现在结合自己的实际以及和网上大牛的经验,给大家分享一下. [使用背景

varnish 4.0 缓存代理配置

一.varnish原理: 1)Varnish简介: varnish缓存是web应用加速器,同时也作为http反向缓存代理.你可以安装varnish在任何http的前端,同时配置它缓存内容.与传统的 squid 相比,varnish 具有性能更高.速度更快.管理更加方便等诸多优点.有一部分企业已经在生产环境中使用其作为旧版本的squid的替代方案,以在相同的服务器成本下提供更好的缓存效果,Varnish更是作为CDN缓存服务器的可选服务之一. 根据官网的介绍,Varnish的主要特性如下:http