一、基本概念
1、缓存穿透
缓存穿透:
指缓存和数据库中都没有用户需要查询的数据(即根本不存在的数据),而用户不断发起请求,那么缓存层和存储层都不会命中,从而导致数据库压力过大。
缓存穿透将导致每次请求根本不存在的数据都要到存储层去查询,失去了缓存层保护后端存储层的意义。可能会使后端存储负载加大,由于很多后端存储不具备高并发性,甚至可能造成后端存储宕掉。
1.1 造成原因- 自身业务代码或者数据出现问题 比如,我们数据库的 id 都是 1 开始自增上去的,请求id=-1,如果不做校验。
- 一些恶意攻击、爬虫等造成大量空命中。
- 接口层增加校验 比如:用户鉴权校验,id做基础校验,id
关注打赏