Redis缓存穿透

现象:
1、应用服务器压力变大
2、redis命中率降低
3、一直查询数据库

产生原因;
1、redis查询不到数据
2、出现很多非正常URL访问

解决方案:
1、对空值做缓存
---如果一个查询返回的数据为空(不管是数据是否不存在),我们仍然把这个空结果(null)进行缓存,设置空结果的过期时间会很短,最长不超过五分钟

2、设置可访问名单(白名单)
---使用bitmaps类型定义一个可以访问的名单,名单id作为bitmaps的偏移量,每次访问和bitmaps里面的id进行比较,如果访问id不在bitmaps里面,进行拦截,不允许访问

3、采用布隆过滤器
---它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(哈希函数)

4、进行实时监控
---当发现redis的命中率开始极速降低,需要排查访问对象和访问的数据,和运维人员配合,可以设置黑名单限制服务

posted @   算盘  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
历史上的今天:
2019-07-03 报错:[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the paren
点击右上角即可分享
微信分享提示