zoukankan      html  css  js  c++  java
  • 使用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来记录相关表变化信息。

  • 相关阅读:
    centos 安装 py 3.0+
    ubuntu下安装多版本Python
    DRF之注册器响应器分页器
    头部随着滚动高度的变化由透明慢慢变成不透明
    悬浮滚动
    判断某天是周几
    正则限制input只能输入大于0的数字
    原生js倒计时
    从两个时间段里分别计算出有几天工作日与周末
    sublime text3连续打出1到10的标签div
  • 原文地址:https://www.cnblogs.com/zhwl/p/3148531.html
Copyright © 2011-2022 走看看