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)两方案比较

相关推荐
逸风尊者几秒前
开发需掌握的知识:MQTT协议
java·后端
虹科网络安全3 分钟前
艾体宝洞察 | 在 Redis 之上,聊一聊架构思维
数据库·redis·架构
帅得不敢出门16 分钟前
精简Android SDK(AOSP)的git项目提高git指令速度
android·java·开发语言·git·elasticsearch
青蛙大侠公主18 分钟前
Spring事务
java·数据库·spring
小小Fred19 分钟前
FreeRTOS函数prvInitialiseNewTask解析
java·开发语言
图表制作解说(目标1000个图表)21 分钟前
Java通过BACnet协议读取和写入设备信息
java·楼宇自控·bacnet协议
老华带你飞23 分钟前
校务管理|基于springboot 校务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
利刃大大26 分钟前
【JavaSE】十一、Stack && Queue && Deque && PriorityQueue && Map && Set
java·数据结构·优先级队列··哈希表·队列·集合类
油丶酸萝卜别吃27 分钟前
springboot项目中与接口文档有关的注解
java·spring boot·后端
小码哥06830 分钟前
家政服务管理-家政服务管理平台-家政服务管理平台源码-家政服务管理平台java代码-基于springboot的家政服务管理平台
java·开发语言·spring boot·家政服务·家政服务平台·家政服务系统·家政服务管理平台源码