查询缓存-缓存更新-缓存穿透-缓存雪崩-缓存击穿

1.查询缓存

1.2.出现的原因

用户高并发访问带来的服务器读写的压力

1.3.解决方法

添加缓存

2.缓存更新

2.1.出现的原因

出现数据不一致的问题

2.2.解决方法

操作数据库的时候

  1. 更新数据库
  2. 删除缓存
    查询数据的时候
  3. 设置过期时间

3.缓存穿透

3.1.出现的原因

在高并发访问某个商品时,在redis和数据库中都没有命中,对数据库造成压力。

3.2.解决方法

向redis中设置空值,将并发的压力给到redis,因为他比数据库的并发能力强。

4.缓存雪崩

4.1.出现的原因

redis宕机,多个热点key失效,压力瞬间给到数据库

5.缓存击穿

5.1.出现的原因

某一个热点key失效,瞬间压力给到数据库

5.2.解决方法

  1. 互斥锁(让一个线程访问数据库,其他的线程进行等待)
  2. 逻辑过期(让一个线程访问数据库,其他的线程返回旧数据)
相关推荐
岁岁岁平安34 分钟前
springboot实战(19)(条件分页查询、PageHelper、MYBATIS动态SQL、mapper映射配置文件、自定义类封装分页查询数据集)
java·spring boot·后端·mybatis·动态sql·pagehelper·条件分页查询
计算机学姐1 小时前
基于SSM的宠物领养平台
java·vue.js·spring·maven·intellij-idea·mybatis·宠物
真上帝的左手1 小时前
数据库-MySQL-MybatisPlus整合多数据源
数据库·mysql·mybatis
真上帝的左手1 小时前
数据库-MySQL-Mybatis源码解析-设计模式角度
数据库·mysql·mybatis
fcopy2 小时前
Golang项目:实现一个内存缓存系统
缓存·golang
凡人的AI工具箱3 小时前
40分钟学 Go 语言高并发:Pipeline模式(一)
开发语言·后端·缓存·架构·golang
对酒当歌丶人生几何3 小时前
Mybatis控制台打印SQL执行信息(执行方法、执行SQL、执行时间)
java·数据库·sql·mybatis
爬山算法4 小时前
Tomcat(36)Tomcat的静态资源缓存
java·缓存·tomcat
LightOfNight4 小时前
Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
服务器·数据库·redis·分布式·后端·缓存·中间件
田本初6 小时前
浏览器缓存与协商缓存
前端·javascript·缓存