性能优化之缓存篇

本文探讨了缓存在性能优化中的重要性,介绍了缓存的基本原理,包括命中率、最大元素和淘汰策略。讨论了缓存的分类,如本地缓存、分布式缓存和数据库缓存,并详细阐述了何时使用缓存及其判断标准。同时,文章列出了使用缓存时可能遇到的问题,如数据不一致、缓存预热、缓存重建、缓存雪崩、缓存穿透和缓存击穿,以及对应的解决方案。最后,对Ehcache、Guava Cache、Memcache和Redis等分布式缓存工具进行了对比分析,推荐在分布式场景下使用Redis。
摘要由CSDN通过智能技术生成

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、反向代理、本地缓存、分布式缓存、数据库缓存。

解读《大型网站技术架构》一文中,其实已经说到过。

我们一般说做性能优化时是指后三个:本地缓存、分布式缓存、数据库缓存。

前面三个缓存策略属于网站前端的范畴。

从硬件介质上来看,缓存分为内存和硬盘两种。

但从技术上,又可以分成内存、硬盘文件、数据库。

我们通常意义上说的缓存一般都是基于内存的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值