当前位置: 首页 > news >正文

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

                                

http://www.dtcms.com/a/190215.html

相关文章:

  • LeetCode Hot100 (1/100)
  • 数据科学和机器学习的“看家兵器”——pandas模块 之一
  • flutter 视频通话flutter_webrtc
  • 【网络编程】八、Cookie Session 抓包原理
  • 火山引擎实时音视频 高代码跑通日志
  • 深度学习Dropout实现
  • day25-异常处理
  • Python爬虫之品牌口碑数据抓取
  • 设计模式(9)——创建型模式之工厂方法
  • golang -- 如何让main goroutine等一等
  • 微信小程序之按钮短时间内被多次点击问题
  • 【taro3 + vue3 + webpack4】在微信小程序中的请求封装及使用
  • DeepSeek 赋能 VR/AR:开启智能交互新纪元
  • 基于开源AI大模型与S2B2C生态的个人品牌优势挖掘与标签重构研究
  • vue使用路由技术实现登录成功后跳转到首页
  • Vue3在使用渲染函数h时候使用v-loading
  • 「数学::博弈论」Nim游戏(尼姆游戏)/ Luogu P2197(C++)
  • RabbitMQ是什么?应用场景有哪些?
  • 基于EMD-PCA-LSTM的光伏功率预测模型研究
  • OpenEvidence AI临床决策支持工具平台研究报告
  • 【Python】抽象基类ABC
  • 【springcloud学习(dalston.sr1)】服务消费者通过restTemplate来访问服务提供者(含源代码)(五)
  • 仿生眼机器人(人脸跟踪版)系列之一
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智能零售柜技术方案
  • Web 架构之会话保持深度解析
  • 使用GRPO训练调度事件的语言模型!
  • Vue3学习(组合式API——Watch侦听器详解)
  • TTS-Web-Vue系列:Vue3实现侧边栏与顶部导航的双向联动
  • 【愚公系列】《Manus极简入门》038-数字孪生设计师:“虚实映射师”
  • elementplus el-tree 二次封装支持配置删除后展示展开或折叠编辑复选框懒加载功能