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

缓存穿透,击穿,雪崩之间的区别与联系

1、缓存数据基本流程

通常来说,我们是从数据库将数据查询出来之后,如果数据不为空,则将数据存储在缓存中,下次查询时就直接从缓存查询了,只有查询不到才会从数据库查询。

2、缓存穿透

核心在穿透两个字,穿透了,就说明在查询数据时没有遇到阻碍,直接就查询到了数据库。

也就是说我们某个数据在数据库不存在,那么就不会存储到缓存,那么这个空数据如果被大量访问,那就会有大量的请求穿透了缓存,直接命中在数据库。

3、缓存穿透解决方案

  • 1、既然数据库没有,但是这个key又可能被大量访问,那么就将空值存储在缓存,过期时间设置短一点。就可以解决瞬时高并发问题。
  • 2、使用布隆过滤器,查询时先去布隆过滤器查询key是否存在,不存在就直接返回,存在再查询数据库和缓存。

 布隆过滤器解决方案,您了解过吗?对于缓存穿透,您还有其他解决方案吗?欢迎提出讨论!

4、缓存击穿

核心在击穿这两个字,击穿就某个或某些key表示以前是存在缓存数据的,现在这一刻消失了,失效了也就是破开了防御了。

大批量的瞬时请求突然到达数据库,

http://www.lryc.cn/news/120536.html

相关文章:

  • Vue项目npm run dev 启动报错TypeError: Cannot read property ‘upgrade‘ of undefined
  • dji uav建图导航系列(二)导航
  • 24.Netty源码之合理管理堆内存
  • 如何自学(黑客)网络安全
  • 【vue】vue基础知识
  • 第一百一十一回 如何实现屏幕适配
  • 免费实用的日记应用:Day One for Mac中文版
  • HCIP的BGP基础实验
  • centos7编译安装升级python3.11
  • win10安装mysql和c++读取调用举例
  • 计算机竞赛 opencv python 深度学习垃圾图像分类系统
  • 通讯协议037——全网独有的OPC HDA知识一之聚合(六)实际时间最小值
  • 【Freertos基础入门】freertos任务的优先级
  • 【报错】ModuleNotFoundError: No module named ‘websocket‘
  • [Leetcode] [Tutorial] 多维动态规划
  • C语言 二级指针和多级指针
  • 新机器到了要做的事情
  • 个人开发中常见单词拼错错误纠正
  • vb+sql汽车配件管理系统设计与实现
  • Spring Boot+Mybatis实现增删改查接口开发+测试(超详细建议收藏)
  • winform 使用CommonOpenFileDialog选择文件夹或文件
  • EXPLAIN使用分析
  • 布局性能优化:安卓开发者不可错过的性能优化技巧
  • Python 中的机器学习简介:多项式回归
  • docker 容器中执行命令出现错误: 13: Permission denied
  • JavaWeb学习|JavaBean;MVC三层架构;Filter;Listener
  • arx 外部参照文件(XREF)的添加、删除、卸载和重载_objectarx
  • 【博客699】docker daemon预置iptables剖析
  • Golang 中的交叉编译详解
  • Python中的诡异事:不可见字符!