性能优化之缓存篇
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、反向代理、本地缓存、分布式缓存、数据库缓存。 在 解读《大型网站技术架构》一文 中,其实已经说到过。 我们一般说做性能优化时是指后三个:本地缓存、分布式缓存、数据库缓存。