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 小时前
Maven进阶与搭建私服
java·maven
大不点wow1 小时前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
噢,我明白了1 小时前
Java中日期和字符串的处理
java·开发语言·日期
dkbnull1 小时前
Spring Boot请求处理组件对比详解
java·spring boot
jun_bai1 小时前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器
顺风尿一寸1 小时前
记一次 Spring AOP 与定时任务引发的死锁排查
java
用户446139430271 小时前
从单体到微服务:我们项目的拆分思路和踩坑记录
java
X-⃢_⃢-X1 小时前
十、Redis之布隆过滤器
数据库·redis·缓存
TDengine (老段)2 小时前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine
码上有光2 小时前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针