千家信息网

怎么解决redis雪崩和穿透

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍"怎么解决redis雪崩和穿透",在日常操作中,相信很多人在怎么解决redis雪崩和穿透问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么解决redis
千家信息网最后更新 2024年11月22日怎么解决redis雪崩和穿透

这篇文章主要介绍"怎么解决redis雪崩和穿透",在日常操作中,相信很多人在怎么解决redis雪崩和穿透问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么解决redis雪崩和穿透"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

解决方法是:1、缓存穿透,可以把空的数据也缓存起来和使用布隆过滤器;2、缓存雪崩,可以设置对应热点key永不过期,多缓存结合,采购第三方Redis,以及过期时间错开,过期时间使用随机生成即可。

本教程操作环境:windows7系统、Redis5.0.10版、DELL G3电脑。

Redis缓存穿透以及解决方法

一、缓存穿透

1.当用户查询的key在redis中不存在,对应的id在数据库也不存在,此时被非法用户进行攻击,大量的请求会直接打在db上,造成宕机,从而影响整个系统,这种现象称之为缓存穿透。

2.解决方案一:把空的数据也缓存起来,比如空字符串,空对象,空数组或list,代码如下

if (list != null && list.size() > 0) {     redisOperator.set("subCat:" + rootCatId, JsonUtils.objectToJson(list));} else {     redisOperator.set("subCat:" + rootCatId, JsonUtils.objectToJson(list), 5*60);}

3.解决方案二:布隆过滤器

布隆过滤器:判断一个元素是否在一个数组里面,如下图,利用二进制去做的一个存储,占用内存比较小,0 代表不存在,1 代表存在,添加查询效率很快,当保存了一个数值会经过一个算法将对应的值保存到布隆过滤器的集合上的某个位置,某个位置上可能会存在多个key,当传进来一个不存在的key值,和集合进行匹配,如果匹配不上便会返回一个null

缺点:1、1%的误判率,当有一个key不存在布隆数组中,但是由于这个误判率,在某个情况下回判断这个key存在,当这个数组越长误判率越低,数组越短误判率越高

2、当我们要删除某个key值的时候,是会删除我们的数据库和redis中的内容,但是布隆数组中无法删除,因为数组的某个位置上会存在对个key如果我们要删除的话就是将1变成0,但是会将其中所有的key值都删除

3.代码复杂度也会增加,因为我们要额外去维护一个集合,当我们使用redis集群,布隆过滤器要和redis结合在一起使用

二、Redis缓存雪崩

1.缓存雪崩:缓存中的数据大批量失效,然后这个使用又要大量的请求进来,但是由于redis中的key全部失效了所有会全部请求到db上,造成宕机

2.解决方案

  • 设置对应热点key永不过期

  • 过期时间错开,过期时间使用随机生成,并且热点数据的过期时间设置的长一点,非热点数据可以设置短一点

  • 多缓存结合,例如:请求进入,可以现请求redis,当redis中不存在的时候再去请求memcache,如果都没有再去请求db

  • 采购第三方Redis(阿里云或者腾讯云上的redis)

到此,关于"怎么解决redis雪崩和穿透"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

缓存 穿透 雪崩 数据 数组 布隆 时间 过滤器 热点 学习 位置 方案 方法 解决方案 代码 代表 数据库 时候 更多 永不 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全可能会侵犯的权益由 socket 服务器接收 易信网络技术开发有限公司 数据库全外连接 服务器断电重启光线不通了 方舟服务器建筑物上限怎么调 徐州软件开发招聘信息 郑州工控软件开发需要多少钱 网络安全法对于言论负责 闻喜恒峰腾网络技术有限公司 嘉兴常用网络技术应用 sql使用向导建立数据库 网络安全为何重要宣传语 网络安全保密工作情况汇报 数据库主键怎么设置 沈阳搜搜贷互联网科技 网络安全专业技术人员年终总结 信息系统升级属于软件开发 魔兽怀旧服务器怎么玩 公共管理下的网络安全 数据库中无限怎么表示 数据库打开表都慢 方舟服务器建筑物上限怎么调 贾汪区网络营销软件开发常见问题 大庆市企业信用数据库 qq空间服务器特别忙 浙江戴尔服务器维修云主机 arcgis表数据库 华为wach 2软件开发 和平精英服务器图
0