zoukankan      html  css  js  c++  java
  • 关于缓存的学习记录

    看到一个大神关于MVC缓存的学习文章,希望大家一起学习。

    原文地址:http://www.cnblogs.com/iamlilinfeng/p/4419362.html

    缓存介绍:

    个人对于缓存的理解就是这样子的。用户访问一个页面A,后端找到A.cshtml之后还要各种构造~转换~序列化。。。(我也不是很懂~感觉有这些东西),然后把这些东西给用户的界面。但是如果这个页面有一个标题是绑定在数据库的,那每次用户访问这个页面都要练数据库查询数据然后再构造~转换~序列化。。。。再给用户页面不很麻烦吗?。如果用户第一次访问这个页面的时候我们把这个页面构造~转换~序列化。。。之后的成品保存下来,每次用户要得时候直接给成品,这样子不就快多了吗?

    Controller缓存

    这个缓存是让该控制器下面所有方法都缓存的(我测试了一下不仅仅页面可以缓存,貌似方法也可以缓存)

    控制器代码如下:

    页面代码如下:

    从上面可以看出,Index页面会显示一个时间,且用ajax请求的方式在控制台输出了Mess方法请求的时间。

    下面是运行效果:

    只要是在10秒之内的刷新、浏览,这个时间都是不会变的(不过这个页面从生成到ajax请求结束居然花了2S。。。)

    关于数据库依赖

     在开头说道A页面有一个数据要访问数据库,这个时候缓存就不仅仅是依赖刷新时间了,而是依赖数据库是否有更新。

     先按照上述节点补充,然后在VS的命令行中运行

    aspnet_regsql -S localhost -U sa -P 123456 -ed -d wcfDemo -et -t user

    期中

          -S localhost:数据库地址

          -U sa:数据库登录名

          -P 123456:数据库登录密码

          -d wcfDemo:数据库的名称

          -t user:表名称(小写)

     这样子每当数据库有刷新,页面的缓存就会失效,重新保存了~

     

    原文链接:http://www.cnblogs.com/iamlilinfeng/p/4419362.html

     另外补充不需要启动的方式

    //启用更改通知
    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来记录相关表变化信息。

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/moshanghuakai/p/7159041.html
Copyright © 2011-2022 走看看