七种缓存使用武器 为网站应用和访问加速

Web应用中缓存的七种武器:

1 数据库的缓存

  通常数据库都支持对查询结果的缓存,并且有复杂的机制保证缓存的有效性。对于MySQL,Oracle这样的数据库,通过合理配置缓存对系统性能带来的提升是相当显著的。

2 数据连接驱动的缓存。

  诸如PHP的ADODB,J2EE的连接驱动,甚至如果把HIbernate等ORM也看成连接器的话。这里的缓存有效机制就不是那么强了,使用此步的方法实现缓存的一个最好的优点就是我们取数据的方式可以保持不变。例如,我调用
$db->CacheGetAll("select * from table"); 的语句不需要改变,可以透明实现缓存。这主要应用于一些变化不大的数据上,例如一些数据字典是不经常变化的。

3 系统级的缓存

  可以在系统内通过Cache库,自行对需要的数据进行缓存,例如一个树桩菜单生成十分消耗资源,那可以将这个生成的树缓存起来。这样做的缺点是,当这颗树的某些地方被更新时,你需要手动更新缓存内的东西。使用的缓存库都可以有不同的缓存方法,有的把内容放在硬盘上,有的放在内存里面,如果你把内容模拟成硬盘来缓存,速度当然也能提升不少。

4 页面级的缓存

  这个在内容管理系统里面用的最多。也就是生成静态页面。这里面缓存控制机制最为复杂,一般也没有什么包治百病的方法,只有具体情况具体分析。通常生成的静态叶面你需要有一个机制去删除过时的,或访问很少的叶面,以保证检索静态叶面的速度。

5 使用预编译叶面和加载为FastCGI的办法

  对于PHP,可以使用zend等编译引擎,对于JSP本身就是预编译。而FastCGI的原理就是将脚本预先加载起来,不用每次执行都去读,这和JSP预编成Servlet,然后加载的道理是一样的。

6 前置缓存

  可以使用Squid作为Web服务器的前置缓存。

7 做集群

  对数据库作集群,对web服务器作集群,对Squild前置机做集群
  对于新手来说,如果你的程序要是恰死,首先你要检查代码是否有错误,是否存在内存泄漏,如果都没有,那么通常问题出在数据库连接上面。
  综合应用上面的缓存方法,开发高负载的Web应用成就很容易了。

时间: 2024-12-28 08:53:06

七种缓存使用武器 为网站应用和访问加速的相关文章

php七种缓存控制输出实例代码

php教程七种缓存控制输出实例代码 可以根据缓存开启与否,有如下几种不同的写法: 注:以下代码都未考虑ie缓存必须大于256字节才输出的问题,如在ie下测试,请在代码开始加一句:"echo str_repeat(' ',256)" 写法1: output_buffering = off implicit_flush=off for($i=0;$i<10;$i++) {    echo $i.'<br />';    flush();    sleep(1); } 写法

一波未平,一波又起:“永恒之石”恶意程序利用七种NSA“网络武器”

继WannaCry席卷全球后,恶意软件永恒之石(EternalRock)浮出水面,该恶意程序利用了黑客组织从NSA窃取的七种"网络武器". NSA"网络武器"被恶意者重新包装,以尽可能地传染给更多系统.基于"永恒之蓝"制作的WannaCry勒索蠕虫病毒在不到一周内感染超30万系统,而这次的永恒之石恶意软件总共包含七个NSA攻击工具. 永恒之石由克罗地亚政府机构CERT的IT安全顾问和专家Miroslav Stampar发现,最早在SMB蜜罐中感染

php七种缓存控制输出实例代码(1/2)

可以根据缓存开启与否,有如下几种不同的写法: 注:以下代码都未考虑ie缓存必须大于256字节才输出的问题,如在ie下测试,请在代码开始加一句:"echo str_repeat(' ',256)" 写法1: output_buffering = off implicit_flush=off for($i=0;$i<10;$i++) {    echo $i.'<br />';    flush();    sleep(1); }   写法2: output_buffer

ASP.NET企业开发框架IsLine FrameWork系列之三--七种武器

IsLine FrameWork Provider介绍 其中IsLine.Data.IsLine.AppLog是我要重点介绍的,不过现在先来简单说说各个Provider的作用. DataProvider 与其他框架一样,DataProvider为项目提供了与数据库交互的能力,它的优点在这里不再阐述,这里 只说一下它与其他框架的数据访问层不同的地方. DataProvider同时兼容SQL SERVER与ORACLE两种数据库,并开放IDBOperater接口,用户只要实现 IDBOperater

ASP中实现分页显示的七种武器

分页|显示|分页     在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便.自由.而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM).Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便.

程序员的七种武器(转)

 程序员的七种武器 作者:雷年胜 (本文选自:赛迪网    2003年02月11日    信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落.程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任.信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封.本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取.而另外

UNIX/Linux C 程序员需要掌握的七种武器

我是一名普通的软件工程师,不是什么技术大牛.这篇文章所提到的"七种武器"只是我这些年工作经验的一点体会和感悟,如果有错误的地方,还请大家指正. (一)C语言 作为一名C程序员,熟练掌握C语言是最基本的一项技能.关于如何学好C语言,以及C语言话题的讨论,网上有很多经典的文章,我就不一一列举了.在这里,我只想谈一点我个人的体会:刚毕业时,我来到一家比较大的软件公司工作,而公司的工作模式是每个人只负责一个小模块.这样工作两年后,我自认为我的C语言水平已经很高了.后来,我来到现在这家公司.由于

七种武器——.NET

一..NET框架(七种武器之孔雀翎) 开发人员应该熟悉.NET FrameWork体系结构和基本原理,熟悉CLR(公共语言运行时)和MSIL(中间语言),熟悉.NET框架中的委托.线程.序列化.集合.垃圾回收机制.反射等内容. (世界上绝没有一种暗器能比孔雀翎更厉害,也绝没有一种武器能比孔雀翎更美丽--孔雀翎娇小的身躯中隐藏着巨大的威力--.NET框架的博大精深,正如同孔雀翎一样美丽而深不可测.) 二.面向对象软件开发(七种武器之霸王枪) 开发人员应该熟悉面向对象软件开发(OOP)基本概念,熟悉

IT江湖论道之数据中心管理七种武器

本文讲的是IT江湖论道之数据中心管理七种武器,传说古龙先生心中有七种武器,件件精妙绝伦.天工巧夺,均属旷世神兵.得其一者便可独步天下.遂引得江湖人众纷纷擦掌相夺,即使丢了性命也在所不惜,由此可见这七种武器的绝妙非凡.它们分别是:长生剑.霸王枪.孔雀翎.多情环.离别钩.碧玉刀,至于这第七种武器究竟为何,卖个关子,稍后再提. 面对当今,企业对于数据中心的依赖性日益严重,越来越多企业的业务与后台系统密不可分.金融.证券.工业.能源.交通.医疗等行业的数据中心升级与建设也如火如荼.云计算时代的到来令数据