论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
Nosql
›
Redis缓存穿透、缓存击穿、缓存雪崩
Redis缓存穿透、缓存击穿、缓存雪崩
泉缘泉
金牌会员
|
2022-6-23 20:14:37
|
显示全部楼层
|
阅读模式
楼主
主题
760
|
帖子
760
|
积分
2290
Redis缓存穿透、缓存击穿缓存雪崩
redis常被用于作为后台数据库的缓存,缓存一些热点访问数据,根据局部性原理,缓存能够处理大部分请求。当请求数据未命中缓存时,才会引起对数据库的访问。
使用redis作为缓存时,存在一些应用问题,包括缓存穿透、缓存击穿、缓存雪崩。
缓存穿透
当有大量查询请求未命中缓存时,引起对后台数据库的频繁访问,导致数据库负载压力增大,这种现象就叫做缓存穿透。
引起的原因:
黑客大量访问不存在的key,导致数据库处理大量请求
解决方法:
将无效的key存进Redis中,若果数据库查询某个key不存在时,同样将这个key缓存到Redis缓存中,并设置value为NULL,表示不存在。如果攻击请求的key每次都相同,该方法有效;如果攻击请求的key每次随机生成,则同样会产生缓存穿透问题。
使用布隆过滤器,过滤掉一些不存在的key。布隆过滤器判定为true时,key可能存在于数据库中,也可能不存在;判定为false时,key一定不存在于数据库。
缓存击穿
当Redis中存在某些极热点数据时,即有大量请求并发访问的key-value数据。当极热点key-value数据突然失效时,缓存未命中引起对后台数据库的频繁访问,这种现象叫缓存击穿。
引起的原因
缓存上极热点数据突然失效
解决方法
对极热点key设置永不过期
使用互斥锁。如果缓存失效的情况,只有拿到锁才可以查询数据库,降低了在同一时刻访问数据库的请求量,防止数据库崩溃。缺点是会导致系统的性能变差。
缓存雪崩
当某⼀时刻发⽣⼤规模的缓存失效的情况,例如缓存服务宕机、大量key在同一时间过期,这样的后果就是⼤量的请求进来直接打到DB上,可能导致整个系统的崩溃,称为雪崩。如果运维重启宕机的数据库,马上又会有大量新的请求流量到来,再次引起数据库宕机。
可能的原因
redis宕机、重启
大量数据使用了同一过期时间
解决方法
引入随机性,在原有缓存失效时间上加上一个随机值,避免大量数据在同一时间失效。
通过请求限流、熔断机制、服务降级等手段,降低服务器负载。
实现缓存组件的高可用,防止单点故障、机器故障、机房宕机等一系列问题。
提高数据后台数据库的容灾能力。
参考
十分钟彻底掌握缓存击穿、缓存穿透、缓存雪崩_mb5fdb099dd338a的技术博客_51CTO博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
泉缘泉
金牌会员
这个人很懒什么都没写!
楼主热帖
华为一镜到底主题__荣耀30系列安装教程 ...
日志模块
「Docker入门指北」容器很难理解?带你 ...
数据资产为王,如何解析企业数字化转型 ...
28基于java的简单酒店数据管理 ...
信创环境下分布式文件存储MinIO集群部 ...
Vulnhub之M87靶机详细测试过程(不同提 ...
面试题百日百刷-HBase中HTable API有没 ...
解决NuGet加载或下载资源慢的问题 ...
MYSQL(进阶篇)——一篇文章带你深入 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表