缓存击穿、雪崩、穿透区别及解决方案
缓存击穿:是指一个Key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个Key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库
缓存雪崩:缓存雪崩是因为大面积的缓存失效,打崩了DB。
缓存穿透:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。
Redis雪崩效应的解决方案
分布式锁(本地锁)
对数据库服务请求进行限制,使用锁机制,保证只有一个线程进行数据库的操作访问,多的直接排队等待,(单本版本可以用本地锁ReentrantLock,集群服务使用分布式锁),可以解决雪崩效应,但会影响吞量。
使用消息中间方式
通过消息中间件让访问排队,加载缓存,只要不让并发一下子全部打在数据库上面,就好办,效果是第一次访问返回空数据,刷新或刷新几次后展示数据
使用数据库的二级缓存,使用ehcache实现二级缓存
均摊分配redis key的失效时间,只要不要集中在一点就好,以几分钟的随机数让缓存错峰失效
多缓存并用,可以用多个缓存, 如redis缓存和memcache缓存并用,或者部署两套redis集群。
通过限流等手段
缓存穿透的解决方案
- 定义参数规则,如果参数不符合规则直接抛异常,常见的如对外提供的接口,参数应该是大于0的,如果一直传小于等于0的参数,直接返回错误
- 数据库中查不到数据的时候,向缓存放一个空对象,再从缓存中获取数据,获取的就是空对象从而不继续走库
缓存击穿的解决方案
限流、二级缓存
缓存击穿、雪崩、穿透区别及解决方案相关推荐
- Redis常见面试题(缓存击穿、穿透、雪崩)
Redis常见面试题(缓存击穿.穿透.雪崩) 击穿 场景: 一般由于redis中的数据到期,同时并发用户特别多,此时大量请求压到数据库上. 解决思路: 根据redis是单进程单实例的特性,当高流量进入 ...
- 使用jedis连接redis-cluster模拟缓存击穿,穿透,雪崩场景
上一篇演示了通过redis实现ID生成器,本篇模拟缓存击穿,穿透,雪崩的场景. package com.coderman.jedis.clusterdemo.hack;import com.coder ...
- 【redis】缓存预热雪崩穿透击穿
[redis]缓存预热雪崩穿透击穿(上) 文章目录 [redis]缓存预热雪崩穿透击穿(上) 前言 一.面试题 二.缓存预热 三.缓存雪崩 发生原因 预防+解决 高可用: 多缓存结合: 人民币玩家 四 ...
- 【Redis系列】缓存击穿、穿透、雪崩解决方案详解
文章目录 前言 一.击穿 1.介绍 2.产生原因 3.解决方案 二.穿透 1.介绍 2.产生原因 3.解决方案 三.雪崩 1.介绍 2.产生原因 3.解决方案 结尾 前言 众所周知,计算机的瓶颈之一就 ...
- 《如何与面试官处朋友》系列-缓存击穿、穿透、雪崩场景原理大调解
前面我们提到分布式多级缓存架构的全貌,但总感觉少了些什么东西.在这样大的场景下面,如果遇到缓存使用问题那可咋办?但自古英雄出少年,相信此刻你已踏马西去,正走在寻找答案上得夕阳西下.每每面谈Redis大 ...
- Redis——缓存击穿、穿透、雪崩
1.缓存穿透: (1)问题描述:key对应的数据并不存在,每次请求访问key时,缓存中查找不到,请求都会直接访问到数据库中去,请求量超出数据库时,便会导致数据库崩溃.如一个用户id不存在,数据库与缓存 ...
- Redis缓存击穿,穿透,雪崩等问题
雪崩(随机过期时间.永不过期). 穿透(表示恶意请求,在系统端判断是否符合规则,比如id<0,布隆过滤器). 击穿(查询加for update,永不过期) redis缓存穿透:查询一个数据库中不 ...
- 缓存击穿,穿透,雪崩
一.缓存击穿 单个热点key,在不停的扛着大并发,在这个key失效的瞬间,持续的大并发请求就会击破缓存,直接请求到数据库 解决方案 使用互斥锁(Mutex Key),只让一个线程构建缓存,其他线程等待 ...
- Java --- redis7之缓存预热+雪崩+穿透+击穿
目录 一.缓存预热 二.缓存雪崩 三.缓存穿透 3.1.解决方案 3.1.1.空对象缓存或者缺省值 3.1.2.Goolge布隆过滤器Guava解决缓存穿透 四.缓存击穿 4.1.危害 4.2.解决方 ...
- php怎么解决雪崩或穿透,Redis之缓存击穿、穿透、雪崩、预热,以及如何解决?...
数据获取的流程,一般是前端请求,后台先从缓存中取数据,缓存取不到则去数据库中取,数据库取到了则返回给前端,然后更新缓存,如果数据库取不到则返回空数据给前端 流程图: 假如缓存的数据没有,后台则会一直请 ...
最新文章
- Android--制作开场动画/MediaPlayer OnCompletionListener
- UA MATH523A 实分析1 度量空间 概念与定理总结
- 五分钟学会悲观乐观锁-java vs mysql vs redis三种实现
- 洛谷P5159 WD与矩阵
- STM32学习——MPU6050姿态传感器
- 开源 静态 文件 服务器,Node.js搭建静态服务器
- 【多线程】--生产者消费者模式--synchronized版本
- 2009年度工作安排计划
- 【细胞分割】基于matlab中值滤波+分水岭法细胞计数【含Matlab源码 640期】
- 查看计算机屏幕颜色软件是什么,显示器颜色校正软件,详细教您显示器颜色校正软件...
- 怎么将webp格式转换成jpg?详细步骤
- matlab dmc控制代码,动态控制矩阵(DMC)算法的浅析
- 将博客搬至CSDN_wuli大世界_新浪博客
- 基于不确定性量化的非精确概率可靠性理论
- 计算机专业的文献翻译,计算机专业外文文献翻译
- PowerDesigner一键导入数据库所有表并画数据模型图
- Laravel企业信息化管理平台
- stb_image图像库处理tga转png
- Oracle 查看表中重复的记录,以及去除表中的重复记录
- openoffice java awt_OpenOffice开发者指南笔记