redis 缓存穿透,缓存击穿,缓存雪崩

一:什么是缓存

(1)计算机:cpu、内存、磁盘,cpu任何需要的数据都要从内容中读入数据放入cpu,从cup内部添加一个缓存

(2)web开发的每个阶段都可以添加缓存

(3)缓存优缺点(中小型企业数据量不大时没必要使用缓存)

二:添加缓存

缓存作用模型(先从redis查询数据,有则返回客户端,无则从redis查询,查询成功后将数据写入缓存,后返回)

2.1 实例-根据id查询商铺缓存

(1)业务逻辑

(2)代码实现

2.2 缓存更新

解决了修改redis后缓存并不知道还保留旧数据问题

(1)业务场景

(2)操作和修改数据库时需要考虑的问题

三:缓存穿透

3.1 基本概述

(1)定义

(2)解决方案

缓存空对象

布隆过滤器

(3)解决方案

3.2 代码实现

商户查询缓存添加

(1)业务逻辑

(2)代码实现

四:缓存雪崩

(1)定义

(2)产生原因

(3)解决方案

五:缓存击穿

(1)定义

(2)解决方案

互斥锁

同一时刻只有一个线程在作业其它都在等待,导致性能差劲

逻辑过期

不设置TTL

(3)两方案比较

相关推荐
界面开发小八哥1 小时前
「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(三)
java·ide·java-ee·myeclipse
idolyXyz2 小时前
[java: Cleaner]-一文述之
java
一碗谦谦粉2 小时前
Maven 依赖调解的两大原则
java·maven
netyeaxi2 小时前
Java:使用spring-boot + mybatis如何打印SQL日志?
java·spring·mybatis
收破烂的小熊猫~3 小时前
《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
java·开发语言·设计模式
猴哥源码3 小时前
基于Java+SpringBoot的动物领养平台
java·spring boot
老任与码3 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
小兵张健3 小时前
武汉拿下 23k offer 经历
java·面试·ai编程
FreeBuf_3 小时前
Apache组件遭大规模攻击:Tomcat与Camel高危RCE漏洞引发数千次利用尝试
java·tomcat·apache
无妄-20243 小时前
软件架构升级中的“隐形地雷”:版本选型与依赖链风险
java·服务器·网络·经验分享