企业级解决方案-缓存穿透|学习笔记

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习企业级解决方案-缓存穿透

开发者学堂课程【Redis 入门到精通(进阶篇)企业级解决方案-缓存穿透】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13474


企业级解决方案-缓存穿透

 

内容介绍:

一、数据库服务器崩溃(3)

二、问题排查

三、问题分析

四、解决方案(术)

五、总结

 

一、数据库服务器崩溃(3)

1.系统平稳运行过程中

2应用服务器流量随时间增量较大

3Redis 服务器命中率随时间逐步降低

4Redis 内存平稳,内存无压力

5Redis 服务器 CPU占用激增

6数据库服务器压力激增

7.数据库崩溃

 

二、问题排查

1Redis 中大面积出现未命中

2出现非正常 URL 访问


三、问题分析

获取的数据在数据库中也不存在,数据库查询未得到对应数据

Redis 获取到 null 数据未进行持久化,直接返回

下次此类数据到达重复上述过程

出现黑客攻击服务器

 

四、解决方案(术)

1缓存 null

对查询结果为 null 的数据进行缓存(长期使用,定期清理),设定短时限,例如30-60秒,最高5分钟

2白名单策略

提前预热各种分类数据 id 对应的 bitmaps,id作为 bitmaps 的 offset,相当于设置了数据白名单。当加载正常数据时,放行,加载异常数据时直接拦截(效率偏低)

使用布隆过滤器(有关布隆过滤器的命中问题对当前状况可以忽略)

3.实施监控

实时监控 redis 命中率(业务正常范围时,通常会有一个波动值)与nul数据的占比

非活动时段波动:通常检测3-5倍,超过5倍纳入重点排查对象

活动时段波动:通常检测10-50倍,超过50倍纳入重点排查对象根据倍数不同,启动不同的排查流程。然后使用黑名单进行防控(运营)

4key 加密

问题出现后,临时启动防灾业多务 key,对 key 进行业务层传输加密服务,设定校验程序,过来的 key 校验

例如每天随机分配60个加密串,挑选2到3个,混淆到页面数据 id 中,发现访问 key 不满足规则,驳回数据访问

 

五、总结

缓存击穿访问了不存在的数据,跳过了合法数据的 redis 数据缓存阶段,每次访问数据库,导致对数据库服务器造成压力。通常此类数据的出现量是一个较低的值,当出现此类情况以毒攻毒,并及时报警。应对策略应该在临时预案防范方面多做文章。

无论是黑名单还是白名单,都是对整体系统的压力,警报解除后尽快移除。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
缓存 NoSQL 安全
【Redis】缓存穿透
【Redis】缓存穿透
30 0
|
3月前
|
存储 缓存 NoSQL
redis之缓存穿透,击透,雪崩~
redis之缓存穿透,击透,雪崩~
|
2月前
|
存储 缓存 NoSQL
作者推荐 | 企业级缓存技术解析,你必须知道的“9“大技术问题与常见误区
本文将深入剖析导致上述问题的九大根源,并提供相应的解决方案。请注意,本文以Java为例进行代码演示,但同样适用于其他技术平台的朋友。只需根据相应技术平台替换相关代码即可!
456 0
作者推荐 | 企业级缓存技术解析,你必须知道的“9“大技术问题与常见误区
|
27天前
|
缓存 应用服务中间件 数据库
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
31 1
|
1月前
|
存储 缓存 NoSQL
[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)
[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)
241 0
|
1月前
|
缓存 NoSQL Java
【二十六】springboot整合jedis和redisson布隆过滤器处理缓存穿透
【二十六】springboot整合jedis和redisson布隆过滤器处理缓存穿透
53 0
|
1月前
|
存储 缓存 NoSQL
【Redis】3、Redis 作为缓存(Redis中的穿透、雪崩、击穿、工具类)
【Redis】3、Redis 作为缓存(Redis中的穿透、雪崩、击穿、工具类)
55 0
|
2月前
|
缓存 NoSQL 关系型数据库
数据库缓存一致性学习笔记(一)
数据库缓存一致性学习笔记(一)
|
2月前
|
缓存 监控 NoSQL
Redis缓存雪崩:预防、应对和解决方案【redis问题 二】
Redis缓存雪崩:预防、应对和解决方案【redis问题 二】
226 0
|
2月前
|
缓存 监控 NoSQL
防弹防线:彻底击败Redis缓存穿透问题【redis问题 一】
防弹防线:彻底击败Redis缓存穿透问题【redis问题 一】
51 0