For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
可以把动态的页面模拟为静态页面,既可以拥有动态页面的灵活性、维护方便 又可以拥有静态页面的性能
开发语言:C#/.NET
操作系统:Windows
产品主页:https://github.com/me15000/PC
此程序 目前只支持windows+.net 平台
windows 2003 + .net 4.0 +iis 6
windows 2008 + .net 4.0 +iis 7.x
windows 2008 + .net 4.5+iis 7.x
windows 2008 + .net 4.5.1 +iis 7.x
等以上平台
你的网站程序可以是 php 可以是 asp 也可以是#
无论你页面写得有多么烂,PageCache 都可以给你的页面加速到 秒开的性能
程序不断升级改进中
通过不断的测试 日志分析 用户反馈,PageCache 已经发展到第五个版本, 目前已经稳定运行在生产环境中。
PageCache 新特性
PageCache 简要说明
PageCache 可以带来的好处
PageCache 详细说明
PageCache 原理
PageCache 怎么使用
PageCache 新特性
新增存储队列,把要存储到磁盘上的内容先写入内存缓冲区,到达一定的数量之后一次性写入磁盘,减少磁盘IO
新增读取队列,把最新从磁盘中读取的内容加入内存缓冲区,减少磁盘IO
新增SQLite 存储器,使用本地文件和磁盘来保存缓存内容,减少网络开销和维护成本,适合小型项目
程序结构优化
PageCache 简要说明
顾名思义 PageCache 是用来缓存网页的 ,如 php 页面、 html、 asp页面、# 页面等等,也可以缓存图片、css、js 等
PageCache可以带来的好处
PageCache 可以在不修改源代码的情况下,将动态页面模拟为静态页面,提升网页打开速度,增强用户体验
PageCache 支持gzip压缩和分片,将源页面压缩为gzip 发送给用户,提升网页打开速度,增强用户体验
PageCache 可以自动计算出 用户频繁访问的页面,将此页面放入内存,提升网页打开速度
PageCache 有很强的可伸缩性,可以创建多个节点,多个存储来进一步提升网站性能 ,支持负载均衡
使用PageCache 可以让注重网站性能的用户,不再为性能而做过多的工作,从而提升工作效率,降低产品开发周期,让开发者更关注需求本身
如果网站使用 dnspod 解析多台服务器,架构多台PageCache服务器,基本上可以做到类似 CDN 的页面加速功能,为项目节约成本
PageCache详细说明
场景:
网站访问量比较大的时候,一个问题就凸显出来,网站的性能(网站的响应速度)
为了解决性能问题,传统解决方案:
生成静态HTML
使用Redis or memcached 等其它缓存软件
【生成静态HTML】优点
打开速度快,不访问数据库,所以很多网站使用生成静态HTML 来提升性能, 在网站规模比较小改动幅度比较小的情况下,这种方法还不错。
网站数据库在挂了的情况下 静态HTML 仍然可以对外访问
【生成静态HTML】缺点
因为如果网站要生成静态HTML,网站就要有写入权限,有写入权限对网站来说是很不安全的
生成静态HTML 在程序实现上有诸多不便,严重影响开发效率,耽误产品开发进度
网站频繁修改、网站数据量上十万 二十万的情况下、网站有成千上万上几十万上百万个页面构成,生成静态HTML 非常耗时麻烦
网站迁移备份由于目录中静态HTML 太多,需要打包网络传输过去 这个过程是很麻烦很漫长的
【使用 Redis or memcached】
在使用 Redis 或者 memcached 这些软件的时候
程序上要多一层,会增加开发周期,会增加维护成本
因为Redis 或 memcached 和 程序的耦合性比较大
会导致程序员的工作量增加
Redis 或 memcached 在项目中的角色:
程序第一次读数据的时候 ,首先要从数据库中取出数据,然后把数据存储到 Redis 或 memcached 中,并设置过期时间
第二次再去读数据的时候,就直接从 memcached 或 redis 中读数据,不用直接再从数据库中读数据
当memcached 或 redis 中的数据过期的时候,再重复上述的步骤
更好的解决方案【PageCache】
PageCache 尽可能模拟到【静态HTML】的性能,甚至超越【静态HTML】的性能的情况下,保留静态HTML的优点,解决静态HTML的缺点
PageCache 拥有多种存储引擎,可以使用传统数据库 mysql、 mssql、 oracle、 本地磁盘等,作为缓存存储引擎,也可以使用 redis、 mongodb、 memcached 等作为存储引擎
PageCache 有良好的存储引擎扩展机制,可以指定规则使用多种不同的存储引擎 解决性能问题
PageCache 独立于应用程序,降低程序耦合性,程序员不用使用 redis memcached 等中间件,更关注程序逻辑提升工作效率
PageCache原理
PageCache 将动态页面执行的结果保存了起来,并指定过期时间,到了过期时间之后,再重新获得动态页面的结果,在缓存没有过期之前,用户访问的都是这个缓存的结果,这样就可以提升网站的性能,不用再去手工生成页面
PageCache可以设定使用内存缓存,自动计算出哪些缓存被频繁访问,然后把这个缓存 放入到内存中,这样可以减少磁盘IO,从而更进一步提升性能
PageCache 通过Http形式获得动态页面的执行结果,这样意味着,动态页面可以放在本地服务器,也可以放在远程,也可以架构多台动态页面服务器,提升性能
PageCache 并不直接把数据放到存储引擎里面,而是缓存到一个内存列表中,当列表中元素数量达到设定值之后,再写入存储引擎中,从而提升存储引擎的性能
PageCache怎么使用
PageCache 基于.net 开发,所以 PageCache 需要依赖微软 .net framework
windows 2008 + iis 7.x 配置说明
PageCache要用到的文件
PageCache.dll 主程序
PageCache.Store.xxxxxxx.dll 存储器程序
PageCache.config 配置文件
Web.config 配置文件
存储器可以有多种选择,也可以定制、默认PageCache自带的存储器有
MySql存储器(PageCache.Store.MySql.dll)
SQLServer存储器(PageCache.Store.SQLServer.dll)
MongoDB存储器(PageCache.Store.MongoDB.dll)
存储器实现了接口 PageCache.Store.IStore 接口,用户需要定制存储器可以实现这个接口,
用户可以根据自己的需要来选择需要的存储器