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

Redis 缓存预热、雪崩、穿透、击穿

  1. 缓存预热
    1. 缓存预热是什么
      1. 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!
    2. 解决方案
      1. 使用 @PostConstruct 、定时任务、手动处理 提前将数据设置到缓存中

  2. 缓存雪崩
    1. 缓存雪崩是什么
      1. 缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力

    2. 发生场景

      1. redis 主机挂了, Redis全盘崩溃,偏硬件运维
      2. redis 中有大量key 同时过期大面积失效,偏软件开发
    3. 解决+预防方案
      1. redis 中 key 设置为永不过期 or 过期时间错开
      2. redis 缓存集群实现高可用
        • 主从 + 哨兵
        • Redis 集群
        • 开启Redis 持久化机制 aof / rdb,尽快恢复缓存集群
      3. 多缓存结合预防雪崩
        • ehcache 本地缓存 + redis缓存
      4. 服务降级
        • Hystrix 或者 sentinel 限流 & 降级
  3. 缓存穿透
    1. 缓存穿透是什么
      1. 缓存穿透 就是请求去查询一条数据,先查redis,redis里面没有,再查mysql,mysql里面无,都查询不到该条记录,但是请求每次都会打到数据库上面去,导致后台数据库压力暴增
    2. 解决方案
      1. 空对象缓存或者缺省值, 如果发生缓存穿透,可以针对要查询的数据,在Redis里存一个和业务部门商量后确定的缺省值 比如 零、负数、defaultNull等
      2. 使用布隆过滤器,将key放到布隆过滤器中,请求来了用布隆过滤器判断key是否存在,如果存在则走后续逻辑,不存在则直接返回
  4. 缓存击穿
    1. 缓存击穿是什么
      1. 缓存击穿就是大量请求同时查询一个key时,此时这个key正好失效了,就会导致大量的请求都打到数据库上面去,也就是热点key突然都失效了,MySQL承受高并发量
    2. 解决方案
      1. 差异失效时间,对于访问频繁的热点key,干脆就不设置过期时间
      2. 互斥更新,采用双检加锁
  5. 总结
    1.  

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 坐牢第二十七天(聊天室)
  • [游戏开发] LuaTable转string存读二进制文件
  • vue 后台管理 之 axios使用及接口拦截响应等
  • 基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真
  • Linux git安装与部署
  • 服务器数据恢复—IBM服务器raid5阵列硬盘出现坏道的数据恢复案例
  • 服务器上部署服务
  • Revite二次开发_使用WPF和WebView2制作一个访问网站的窗口
  • pygame游戏开发系列教程(1)
  • C++数组入门
  • Python知识点:如何使用Boto3进行AWS服务管理
  • Electron 集成 Express + p-limit + SQlite WAL读写模式解决并发锁库的问题
  • OpenCV Python 图像处理入门
  • 11.怎么做好一个动态标签页
  • 设计模式21-组合模式
  • canvas 绘制双线技巧
  • Codepen 每日精选(2018-3-25)
  •  D - 粉碎叛乱F - 其他起义
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Elasticsearch 参考指南(升级前重新索引)
  • JAVA 学习IO流
  • python3 使用 asyncio 代替线程
  • Spring Cloud Feign的两种使用姿势
  • TCP拥塞控制
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 马上搞懂 GeoJSON
  • 探索 JS 中的模块化
  • mysql面试题分组并合并列
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (zhuan) 一些RL的文献(及笔记)
  • (八)c52学习之旅-中断实验
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)测试工具
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET程序员迈向卓越的必由之路
  • .net经典笔试题
  • .net连接oracle数据库
  • .NET文档生成工具ADB使用图文教程
  • @Builder用法
  • @vue/cli 3.x+引入jQuery
  • [ 数据结构 - C++] AVL树原理及实现
  • [000-01-011].第2节:持久层方案的对比
  • [20160807][系统设计的三次迭代]
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [4.9福建四校联考]
  • [APIO2012] 派遣 dispatching
  • [BeginCTF]真龙之力
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子