为什么用缓存:
一句话:因为速度快,好用
缓存数据存储于代码中,而代码运行在内存中,内存的读写性能远高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力
实际开发过程中,企业的数据量,少则几十万,多则几千万,这么大数据量,如果没有缓存来作为"避震器",系统是几乎撑不住的,所以企业会大量运用到缓存技术;
但是缓存也会增加代码复杂度和运营的成本:
实际开发中,会构筑多级缓存来使系统运行速度进一步提升,例如:本地缓存与redis中的缓存并发使用
浏览器缓存:主要是存在于浏览器端的缓存
应用层缓存:可以分为tomcat本地缓存,比如之前提到的map,或者是使用redis作为缓存
数据库缓存:在数据库中有一片空间是 buffer pool,增改查数据都会先加载到mysql的缓存中
CPU缓存:当代计算机最大的问题是 cpu性能提升了,但内存读写速度没有跟上,所以为了适应当下的情况,增加了cpu的L1,L2,L3级的缓存
缓存
穿透:
1、空值
2、布隆过滤
3、提高id复杂度
4、限流
5、加强用户校验
雪崩:
1、给不同的Key的TLL添加随机数 、利用Redis集群提高服务的可用性
2、给缓存业务添加降级限流策略
3、给业务添加多级缓存
穿透:
1、互斥锁
2、逻辑删除
标签:缓存,读写,Redis,限流,内存,数据量 From: https://www.cnblogs.com/Zz198/p/16910100.html