网站的缓存类型

缓存用的好,大大减轻服务器压力和提升用户体验。只要涉及到缓存,肯定会存在数据更新不及时的问题。下面分为3个级别来说,越往下,说明上一级的缓存不存在或者已经失效。

第一级,浏览器缓存

优点:

这是最省资源的一种方式,浏览器甚至都不需要发起请求。

缺点:

缓存脱离控制,如果缓存时间设置太长,用户无法访问最新的页面。特别出现一个紧急BUG的时候,需要一段时间,才能平息。

使用:

在header头部添加Expires, Cache-control: max-age, Last-Modified, Etag一个或者多个头部

html代码当中,可以在meta对缓存进行控制。

建议:

JS,CSS,图片可以把缓存时间设置长久一些,永不过期都可以。文件出现变化的时候,通过添加版本号进行更新。

HTML可以根据自己的更新的速度,来设置缓存的有效期时间。

第二级,CDN缓存–静态页面

根据智能DNS解析,用户访问到最近的一台机器,这样就可以减少网络延迟。

用户访问CDN,CDN上如果资源存在并且没有过期,直接返给用户内容,否则需要先访问源站,然后保存到CDN服务器上面,然后返给用户。

优点:

请求分散,消弱了高流量下的压力。

减少了网络延迟

缺点:

节点资源可能缓存不一致,导致不同的用户看到的结果不一样

如果设置过期时间短或者其他的不合理的回源策略,会导致大量回源,导致访问速度更慢

高并发期间,一个资源,可能同时会有多个回源请求

刷新CDN,需要一段时间,如果出现BUG的话,那也得等几分钟

第二级,proxy缓存–动态页面

很多代理服务器都支持了缓存,比如Nginx,Apache。一些动态页面或者接口不怎么更新,比如产品列表等,可以把内容缓存到服务器里面,下次请求的时候,直接读取缓存,动态脚本都不需要执行。动态脚本如果要返回的话,可能需要访问数据库,以及一些其他的服务,这就增加了响应时间。

使用:

nginx,可以配置proxy_cache

apache,配置mod_cache、mod_disk_cache、mod_file_cache 及mod_mem_cache

第三级,opcode缓存

是针对php代码。php执行的时候,需要先对php代码解释,生成中间代码,称为opcode,然后再执行。如果缓存住,就可以不需要每一次都解释,这样就可以节省不少资源,增加吞吐量。

优点:

节省资源,增加吞吐量

缺点:

代码更新,需要等待opcode失效。如果设置不过期的话,那就需要重启服务器。

opcode主要节省了CPU和内存资源,如果时间消耗主要是磁盘或者网络IO,那么作用不是太大。

第三级,文件缓存

会把计算或者从数据库,以及其他服务获得数据,放到一个文件里面,使用的时候取出来。常见的session就是这么做的。我看phpcms就大量使用这种缓存。

缺点:

多台服务器,数据缓存内容可能不一致。为了解决这个问题,曾经挂载共享代理,这就导致磁盘IO成为瓶颈。

设置过期时间,不太容易。

第三级,分布式缓存

为了解决文件缓存存在的问题,就出现了分布式缓存。常见的有memcache,redis.可以搭建集群,设置过期时间。redis,百度都把它当做数据存储来使用。这种缓存在互联网行业当中,大量应用。

缺点:

需要人维护,消耗大量内存,需要设置过期时间。

转载至 --万马奔腾 » 网站的缓存类型

时间: 2024-08-06 23:46:17

网站的缓存类型的相关文章

获取网站Web服务器类型的办法

获取网站Web服务器类型的办法如下: 有些同学老问怎么判断Web服务器.如nmap nc nikto等好多可以的-.要那么多扫描器干嘛 NMAP一个就够了!方法N多,举几个例子吧! nmap [email protected]:~$ nmap -sV -p 80 www.xxoo.com Starting Nmap 5.00 ( http://nmap.org ) at 2010-05-24 19:49 CST Interesting ports on 203.xxx.xxx.1×1: PORT

网站素材库类型的网站为什么权重那么高

关于网站权重,可能是每个站长所渴望的,因为一个网站的权重高,将决定这个网站所带来的流量,权重高,网站内容更新也会被百度迅速收录,从而达到关键词优化的目的.所以站长们在优化一个网站的时候,会通过几种来对网站权重进行分析优化,选择好合适的关键词,百度指数不用太高,只要占据百度前20名,网站便会轻松有了一个权重,这样看起来,似乎是关键词排名决定网站权重,但是真正的权重是由高数额的流量带出来的,流量高,就算关键词排名在100名以外,权重照样有,有了权重,对关键词的排名才会有很大帮助.这些只是前言,来分析

I/O供应的缓存类型:全缓存,行缓存,无缓存

文件缓存进程:当数据从内存向磁盘输出时,数据必需先送到缓存中,等到缓存满了或许次第恳求清空缓存的时分,数据才被写入磁盘. 全缓存:该类型中,文件的实习操作是缓存被布满以后进行的缓存没有完全被布满时,系统不会自动将文件写入磁盘.除非系统调用改写(flush操作强即将数据写入磁盘. 行缓存:输入和输出进程中遇到行结束标志的时分,规范I/O库就实行实习的I/O操作. 无缓存:系统不会为流分配内存,每一次规范I/O函数的调用都会使得底层I/O调用被实行. 文件的翻开与关闭 当系统操作一个文件时,会在内存

PHP网站redis缓存方式分析

作者:Wucl 时间:2014-02-05 章节内容:基础背景.分析内容.个人心得(这个人非常没品德,想到什么就写什么.). 1. 基础背景: 为了提高页面访问速度,降低访问数据库压力. 2. Redis缓存分析: 首先提出3个问题: 1)是否缓存整个网站中间件的数据? 2)如果缓存整个中间件的数据redis是否可以承压? 3)PHP缓存redis是否会对中间件的缓存方式存在影响? 现有两种预案: A方案:缓存时间较短,一般为120s以内, B方案:缓存时间较长,一般为84600s. A方案 开

深入缓存核心技术:大型网站多级缓存的分层架构

在互联网高速发展的今天,缓存技术被广泛地应用.无论业内还是业外,只要是提到性能问题,大家都会脱口而出"用缓存解决". 这种说法带有片面性,甚至是一知半解,但是作为专业的我们,需要对缓存有更深.更广的了解. 缓存技术存在于应用场景的方方面面.从浏览器请求,到反向代理服务器,从进程内缓存到分布式缓存.其中缓存策略,算法也是层出不穷,今天就带大家走进缓存. 正文 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 假设一个网站,需要提高

网站空间的类型

商盟互联:www.sumdns.cn 虚拟主机: 虚拟主机是把一台物理机器分割成很多的小空间,这些空间共享操作系统的资源,比如:同一个操作系统,同一个IP,但是是不同的域名,共享带宽,共享服务器的资源(CPU.内存.存储空间). 正常情况一个虚拟主机只能建立一个网站. VPS(虚拟专用服务器): VPS通过一定的技术将一台物理机分割成若干台服务器,每一台都具有独立的操作系统和独立的IP:独立的CPU.内存.存储空间,可自行安装程序,单独重启自己的VPS,VPS主机每个虚拟服务器都有自己独立的Ro

发布网站时提示 类型“”同时存在于dll 和dll中

复制了页面 ,页面名字改了 可是引用的后台类文件的类名没改,导致类名重复 类型""同时存在于 类型""同时存在于

高性能网站架构缓存——redis集群

相信你已经对redis有一定的了解,并能够安装上,进行简单的使用了,但是在咱们的实际应用中,使用redis肯定不会使用单机版,不光是redis不能使用单机版,其他的也不会使用,所以今天我们来说一下redis cluster的安装. 1.  Redis Cluster的架构图. (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redis节点直连,不需要中间proxy

部署网站运行平台LNMP + Memcached缓存

部署网站运行平台LNMP + Memcached缓存  *本实验的LNMP和Memcached都安装在同一台服务器上 *Nginx   提供网站服务 *MySQL   提供数据库服务 *PHP    提供动态网站编程语言 *Memcached 提供数据缓存(通过降低对Database的访问来加速web应用程序) 一.搭建LNMP平台(源码包安装) Linux+Nginx+Mysql+PHP(perl) 1)基本环境准备 安装"开发工具"和"开发库""Dev