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来记录相关表变化信息。

  • 相关阅读:
    nginx优化——包括https、keepalive等
    Kubernetes+Prometheus+Grafana部署笔记
    常见的页面调度算法
    算法-求二进制数中1的个数
    C++ 关联容器详解——从内部结构到应用
    C++ 容器及选用总结
    C++ STL中迭代器失效的问题
    二维数组和指针
    Linux软连接和硬链接
    what is the virtual machine, when and why we need use it ?
  • 原文地址:https://www.cnblogs.com/moshanghuakai/p/7159041.html
Copyright © 2011-2022 走看看