http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 22148|回复: 4

[教程] 分布式框架v1.3页面缓存机制用法详解

[复制链接]
发表于 2016-6-19 09:06:22 | 显示全部楼层 |阅读模式
    在分布式框架v1.3中,我们引入了页面缓存机制,主要是用于处理一些页面,这些页面的数据可以缓存成一个静态文件,第一次请求时会生成一个具有过期时间的物理文件,再次提取时会去直接提取该静态物理文件输出给客户端并判断是否过期,这样该页面在缓存后再次访问就会直接调用该静态页的数据而不会去请求动态页面,这样在某种程序上可以减少网站的一些压力,再者在服务器出现故障时甚至可以保持一段时间内的数据访问正常,可以给我们留下更多的时间去处理服务器维修等问题。
    缓存页面机制原理其实也很简单,主要是在底层去重写了页面的Render和OnPreInit方法,我们在OnPreInit中去处理拦截请求,判断是否缓存了该页面,如果缓存了就直接读取静态页,然后response.end(),停止该动态页的执行。在Render方法中去将页面生成的html拦截到并生成静态页,代码结构如下图,所有的处理逻辑都在CacheEnabledPage.cs这个类中实现。


1.png

原理大致了解后,我们来看怎么去使用这个类,我们以Sql/User/List.aspx调取列表为例,我们让这个页面来实现缓存机制。

2.png
1.首先我们需要在web.config中先去配置一下我们的缓存物理目录,就是我们要把缓存的静态文件放到哪个盘下,在configuration中添加节点:
[C#] 纯文本查看 复制代码
<appSettings>
    <!--是否开启页面缓存逻辑-->
    <add key="cachedPageEnabled" value="true" />
    <!--页面缓存路径-->
    <add key="cachedPagePath" value="F:\\Distributed_Cached\\" />
  </appSettings>

2.需要当前页面继承该缓存机制类CacheEnabledPage,具体代码如下:
[C#] 纯文本查看 复制代码
namespace DistributedWeb
{
    public partial class List : CacheEnabledPage
    {
}
}

3.我们运行一下网站,请求一次该页面:
3.png

然后去看看路径下面有没有生成静态文件:
4.png
其实使用步骤很简单,如果某个页面需要缓存机制,只需要处理一下1,2两步就行了,其他的就不用管了,系统会自动去判断缓存页面了。如果你想了解更多的关于缓存机制的实现原理和步骤,可以下载分布式框架自己研究代码...





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2017-5-19 00:08:40 | 显示全部楼层
对于你的分布式缓存框架,个人表示并没有什么卵用!既然你都说了分布式,那么我就再问你一个,你考虑到了负载均衡了么?为什么不用缓存服务器Redis作为缓存?不服来辩!
发表于 2017-5-19 08:30:13 | 显示全部楼层
Eagle 发表于 2017-5-19 00:08
对于你的分布式缓存框架,个人表示并没有什么卵用!既然你都说了分布式,那么我就再问你一个,你考虑到了负 ...

你可能没有看文章吧,这是页面级缓存,没听说过有谁会使用Redis做页面静态化缓存的。这个先不说别的,就一个普通的新闻网站100TB的内容,你缓存的进去吗,就算能,成本得多高,显然页面缓存是需要用硬盘而不是内存,Redis没有用,但常用数据,和其他在框架里面有Membercache缓存,Redis和Membercache是一类,页面级缓存是静态化两者好像关系不大。
发表于 2017-11-20 15:11:46 | 显示全部楼层
本帖最后由 Kenney 于 2017-11-20 15:14 编辑

出了点小问题,,,分页不能读取新的一页,,还是读取缓存的内容去掉缓存继承CacheEnabledPage就没错
发表于 2020-7-23 12:46:19 | 显示全部楼层

ikazgjfhfgzodsMoodovfy

female viagra viagra side effects viagra pill <a >female viagra</a> buy viagra
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 08:26

© 2014-2021

快速回复 返回顶部 返回列表