关于"缓存"& ~ s! S& u) i6 f2 w+ o
: A1 K( l/ n3 g. W$ |- T
刚刚去百度百科查询了一下"缓存"这个词条,但是其解释仅仅限于CPU与内存之间的缓存关系.对于CPU来说,内存显然是太慢了,所以才发展了CPU的一级缓存和二级缓存.
% ^, B4 O1 r, d& R* r" A9 S! @, C2 j4 i$ b
今天主要给大家分享一下互联网中应用到的缓存形式,也是我们大拿网目前正在使用的.. {5 f& d) O- g9 s4 y6 V
6 D; Y6 _% g4 O& t 无论哪种形式的缓存,其目的都是一个:提高响应速度.0 F2 F, n3 j5 t6 [5 I* s0 \
/ A' ~" n' |: }6 c1 Z) \6 u' N 1.MEMCACHE* w6 J) n! \- g; e! u6 f
% e2 w2 g$ m1 f( P& @ 这是mysql数据库的MEMCACHE.数据库的数据存储在服务器的硬盘上,如果用户需要读取的话,那么就要去查询硬盘,而硬盘的读取和写入速度是有很大限制的,这样就形成了一个瓶颈.同时数据库服务器过于繁忙,也会有效率的问题.MEMCACHE是将数据库的记录缓存到服务器的内存上.当再有数据库查询的时候,就不去数据库中直接读取数据了,而是从内存中读取.
; o; Q/ [, T5 o7 Q8 Y/ I* N% O+ `6 h6 T9 H
MEMCACHE可以极大的提高读取效率,减轻数据库的负担.缺点就是数据不及时.但是大家可以根据具体情况来部署MEMCACHE,比如排行榜等更新不及时的数据;又比如每个页面都需要用到的一些查询等.
7 i( }, Z1 v5 p+ |+ c
' @0 i" b2 K3 k MEMCACHE可以设置过期时间,到时间后,系统会自动重新到数据库中更新,从而实现查询记录的更新.当然,当重要数据需要立即更新时,我们也可以手动的去更新MEMCACHE.' A& e' w: t/ P9 j7 j+ t
. S& J( v' F/ i( e3 s
2.Smarty缓存
& M) e% [5 w) ]) R0 p U6 b7 G" {3 m( ^/ E
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最着名的PHP模板引擎之一.它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离.简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要.
; b% T9 _. O$ q. ?' F
2 j2 r* L) l; @8 p2 _ 同时Smarty还具备缓存的功能.现在很多程序都使用了SMARTY的缓存,比如discuz论坛等.! ~5 D; h0 ~. N8 d6 v6 L8 Z
p6 } m- v u# L2 T Smarty的缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件.1 S4 ]+ }- E1 }. ~5 r: u5 g
4 L" o% s! q0 g! [9 T- f 3.CDN缓存.
: i: ?1 G8 J8 L4 o4 F) C4 e) h3 N) H- ]+ b8 `7 g5 x3 N& r
CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度.
* ]1 u! R& Z: d6 ^: G
; d( o* E0 f# n- W 除了加速以外,CDN因为其分发的特点,也就同时具备了缓存的功能.! v) P% \0 j% V" F
& I8 l& P0 L& ?- m% H" R) |" a 我们大拿网现在使用的是帝联的CDN服务.7 y" f s6 V' i& t( T
* L# r3 U% f% r( |3 C 当我们需要更新的时候,可以使用其推送的服务,以达到迅速更新的目的.
p- \+ S& ]& Q T8 e4 k4 ]8 B/ S+ H2 I" ?" `, u7 J
4.浏览器缓存
( N6 [0 h4 U% o4 T, J% b( ~) D* I. ~- i3 U! z! Y' y$ z
我们使用的IE、火狐等浏览器都具有缓存功能.浏览器将一些图片、JS文件、CSS文件等缓存到本地电脑中.当用户上网要访问同一个文件时,浏览器会将本地缓存的内容优先给用户看,这样也就提高了浏览速度.
* Q) W: F1 ?+ B% H) |1 h: y m. } ~- o$ w
所以,有的时候同样一个页面不同人看到的结果不同,很多时候还要用户手动清空这些缓存文件后,才能获得最新的内容.: b* ~& N1 M+ a( h% o4 z: o
8 A. N4 l9 ?" I 以上4种缓存技术是目前我们大拿网都在使用的.大家在工作中可以注意分辨一下这几种缓存的使用. |