2013-0226

使用SqlCacheDependency依赖项让数据库变化后缓存失效

作者: momy 分类: 编程开发 0 Comment »
摘要:SqlCacheDependency可以使缓存在数据库或者数据库某张表或者字段变化后让指定缓存失效

SqlCacheDependency可以使缓存在数据库或者数据库某张表或者字段变化后让指定缓存失效。对于一些需要及时显示的信息比较有用。

需要.net2.0以后设sql server2005及以后版本支持。

首先配置web.config

<system.web>
<caching>
<sqlCacheDependency enabled="true" pollTime="5000">
<databases>
<add connectionStringName="DefaultConnection" name="SiteInfoSqlDependency"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>

第二步 插入缓存:

//启用更改通知
SqlCacheDependencyAdmin.EnableNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);

//连接到 SQL Server 数据库并为 SqlCacheDependency 更改通知准备数据库表
SqlCacheDependencyAdmin.EnableTableForNotifications(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString, "QJInfo_SiteInfo");

//制定缓存策略
SqlCacheDependency scd = new SqlCacheDependency("SiteInfoSqlDependency", "QJInfo_SiteInfo");

//插入缓存
cache.Insert("SiteInfo", siteInfo, scd, DateTime.Now.AddHours(5), Cache.NoSlidingExpiration);

之后数据库表有插入、更新或删除操作时,改缓存就会自动失效,数据库里边多了个表AspNet_SqlCacheTablesForChangeNotification来记录相关表变化信息。

标签: SqlCacheDependency 缓存 阅读: 11054
上一篇: 黑客利用木马入侵火车票网站劫持票款 - 9819次
下一篇: MVC 使用Areas后存在相同Controller时报错 - 16613次

向右滑动解锁留言