Redis缓存穿透

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

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

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

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

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

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

posted @ 2024-07-03 21:52  算盘  阅读(2)  评论(0编辑  收藏  举报