1.查询缓存
1.2.出现的原因
用户高并发访问带来的服务器读写的压力
1.3.解决方法
添加缓存
2.缓存更新
2.1.出现的原因
出现数据不一致的问题
2.2.解决方法
操作数据库的时候
- 更新数据库
- 删除缓存
查询数据的时候 - 设置过期时间
3.缓存穿透
3.1.出现的原因
在高并发访问某个商品时,在redis和数据库中都没有命中,对数据库造成压力。
3.2.解决方法
向redis中设置空值,将并发的压力给到redis,因为他比数据库的并发能力强。
4.缓存雪崩
4.1.出现的原因
redis宕机,多个热点key失效,压力瞬间给到数据库
5.缓存击穿
5.1.出现的原因
某一个热点key失效,瞬间压力给到数据库
5.2.解决方法
- 互斥锁(让一个线程访问数据库,其他的线程进行等待)
- 逻辑过期(让一个线程访问数据库,其他的线程返回旧数据)