今天小编要和大家分享的是存储技术相关信息,接下来我将从缓存的基本原理 缓存的分类,这几个方面来介绍。
存储技术相关技术文章缓存的基本原理 缓存的分类
1. 前言:为什么要用缓存?
用户数增长,架构演变,数据量增大,开始考虑怎么去做性能优化。
而性能优化的第一定律就是:优先考虑使用缓存。
2. 缓存的基本原理
2.1 缓存的作用
1、加快数据访问速度;
2、减轻后端应用和数据存储的负载压力。
2.2 缓存的特征
1、命中率:命中率 = 命中数 / 请求数。
这是衡量缓存有效性的重要指标。命中率越高,表明缓存的使用率越高。
2、最大元素(最大空间)。
一旦缓存中元素数量超过这个值(或者缓存数据空间超过其最大支 持空间),将会触发淘汰策略。
3、淘汰策略。
这个我前文其实已经说过。
FIFO(First In First Out) 先进先出,淘汰最早数据。
判断存储时间,离目前最远的数据优先淘汰。
LRU (Least Recently Used)剔除最近最少使用。
判断最近使用时间,离目前最远的数据优先淘汰。
LFU (Least Frequently Used)剔除最近使用频率最低的数据。
在一段时间内,数据被使用次数最少的,优先淘汰。
具体可以看这篇文章常见的缓存剔除策略 & LRU与LFU的区别。
3. 缓存的分类
缓存的主要手段有:浏览器缓存、CDN、反向代理、本地缓存、分布式缓存、数据库缓存。
在解读《大型网站技术架构》一文中,其实已经说到过。
我们一般说做性能优化时是指后三个:本地缓存、分布式缓存、数据库缓存。
前面三个缓存策略属于网站前端的范畴。
从硬件介质上来看,缓存分为内存和硬盘两种。
但从技术上,又可以分成内存、硬盘文件、数据库。
我们通常意义上说的缓存一般都是基于内存的。
因为只有内存,才足够快。
数据库缓存一般也是基于内存的,但这个活一般是DBA在配置数据库的时候就设置好了。
对于大部分开发人员来说,我们一般所说的缓存优化都是基于本地缓存(ocal cache)和远程缓存(remote cache)。
而现在远程缓存这个词一般也被分布式缓存这个常用方案所代指。
4. 什么时候使用缓存?
4.1 缓存的使用判断
什么时候使用缓存的判断其实比较简单,抓住两点就行了: