redis缓存雪崩 缓存穿透 缓存击穿如何解决_mongodb和redis的区别

redis缓存雪崩 缓存穿透 缓存击穿如何解决_mongodb和redis的区别缓存雪崩: 比如给缓存中的key设置了统一的过期时间,而在过期时间点,有大量的请求进来,这个时候redis中没有用户请求的资源,所以所有的请求会全部拥到数据库,如果数据库有报警监测的话,可能会报一下警

  

缓存雪崩:

比如给缓存中的key设置了统一的过期时间,而在过期时间点,有大量的请求进来,这个时候redis中没有用户请求的资源,所以所有的请求会全部拥到数据库,如果数据库有报警监测的话,可能会报一下警,然后数据库就挂掉了。如果这时候把数据重新起来,redis上还是没有缓存这些内容,数据库还是会被再一次击垮。

解决方法:

给key的过期时间设置一个随机值,让key的过期时间不集中到一块。这样即使有过期的,这样的压力,一般的redis集群都能扛下来。

缓存击穿:

某个key比较热点,当有大量的用户访问时,如果这个key在这期间失效的话,会造成缓存击穿。

解决方法:

可以设置热点数据和首页数据不过期,如果主页数据有更新的话,可以从数据库刷新缓存

缓存穿透:

缓存穿透就是用户访问的数据在缓存中和数据库中都不存在。数据库的id都是从1自增加的,如果用户用户访问一个id为-1的数据或者id特别大的数据,缓存中和数据库中找不到这个数据,就会造成缓存穿透

解决办法:

在接口层进行数据校验,如果id<=0或者参数不合法,直接拦截。或者如果这个数据找不到的话,可以给这个key的value设置为null或者可以根据需要返回一个小可爱,您迷路了。

注:

① redis可以做高可用、集群、哨兵加主从,可以避免全盘崩溃
② redis可以做持久化RDB+AOF,一旦重启,可以自动从磁盘上加载数据,快速恢复缓存数据
③ 服务降级,进行数据限流(通过限流组件:这样用户可能单次访问不到页面,但是多刷几次就出来了) ,这样可以避免数据库被直接打死

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10976.html

(0)
上一篇 2022-12-18
下一篇 2022-12-18

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注