浅谈web缓存技术

  • 2017-02-27
  • 1205
  • 0

一,认识缓存

记得第一次认识缓存,是在大学期间学习《计算机组成原理》时,具体细节已无印象,粗略总结起来是:在计算机中,凡是位于速度相差较大的两种介质之间,用于协调两者数据传输速度差异的结构,均可称为缓存(Cache),如CPU和内存之间、内存和硬盘之间均有缓存。

二,缓存的优点
1. 节约带宽 ,节省硬件资源。
2. 缓存后端服务器请求穿透压力。
3. 降低时延,提高响应速度。

三,web世界(php)中缓存有哪些

1.底层有CPU缓存、磁盘文件系统缓存。

2.应用层有zend虚拟机的变量缓存,有memcached、redis这样的k-v内存缓存,有apc、opcache这样的基于opcode字节码的缓存。

3.数据库层(mysql)有Query Cache。

4.web服务器有nginx、apache的缓存。

5.再往上,有Squid、Varnish的Web Cache。

6.应用程序代码层,有Smarty等模版引擎实现的文件缓存。

7.基于http协议的浏览器缓存。

四,缓存三大要素

1.命中率

缓存机制好坏和效率通常是通过命中率来衡量。命中率越高,证明缓存的使用率越高。以mysql的Query Cache为例,Query Cache缓存客户端提交给mysql的select语句以及该语句的结果集(将select语句和结果集做hash映射关系后保存在一定的内存区域中),可以通过show global status like ‘Qcache%’;命令计算出Query Cache的命中率。

2.缓存更新策略

常用的算法有如下几种:

FIFO[first in first out]。最先进入缓存得数据在缓存空间不够情况下会被首先清理出去。

LFU[Less Frequently Used]。最少使用的元素会被清理掉。这要求缓存的元素有hit属性,在缓存空间不够得情况下,hit值最小的会被清出缓存。

LRU[Least Recently used]。最近最少使用的元素被清理,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方缓存新元素时,现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。

3.缓存最大数据量

缓存最大数据量是在缓存中能处理元素的最大个数或能使用的最大存储空间。通常各种缓存机制都会对缓存最大数据量进行限定,可以是固定大小的存储空间、集合个数,或者由操作系统所能分配和处理的存储空间决定。


上一篇:  下一篇:

评论

还没有任何评论,你来说两句吧

Copyright © 2014-2016 lxlxw All Right Reserved