Java面试八股之使用Redis会有哪些问题?击穿、穿透、雪崩等

  1. 使用Redis会有哪些问题?击穿、穿透、雪崩等

击穿:热点数据过期,大量并发请求被发送到数据库。

解决:设置热点数据永不过期,后台更新;增加互斥锁机制,第一个请求发现缓存失效后,从数据库获取,并更新缓存,后续请求继续从缓存中读取最新数据。

穿透:注意这个透字,顾名思义就是redis和数据库中都没有找到请求的数据,一般是非法请求或者尝试获取数据库中不存在的数据。

解决:缓存null值,防止出现请求穿透。增加请求验证,避免非法请求发送到Redis和数据库。布隆过滤器

雪崩:大量key同时过期失效,大量请求被发送到数据库。通常是因为大量key的过期时间设置成相同时间,或者Redis服务器宕机。

解决:部署哨兵模式或集群模式,防止服务宕机。设置随机的过期时间,避免大量key同时过期。

如果大家需要视频版本的讲解,欢迎关注我的B站:

相关推荐
小兔兔吃萝卜1 分钟前
Spring 创建 Bean 的 8 种主要方式
java·后端·spring
热爱23320 分钟前
前端面试必备:原型链 & this 指向总结
前端·javascript·面试
Spider_Man21 分钟前
面试官:你能手写 bind 吗?——JS this 全家桶趣味深度剖析
前端·javascript·面试
亲爱的马哥23 分钟前
重磅更新 | 填鸭表单TDuckX2.9发布!
java
Java中文社群25 分钟前
26届双非上岸记!快手之战~
java·后端·面试
whitepure29 分钟前
万字详解Java中的面向对象(二)——设计模式
java·设计模式
whitepure32 分钟前
万字详解Java中的面向对象(一)——设计原则
java·后端
小奋斗1 小时前
深入浅出:JavaScript中防抖与节流详解
javascript·面试
北京_宏哥1 小时前
Python零基础从入门到精通详细教程11 - python数据类型之数字(Number)-浮点型(float)详解
前端·python·面试
2301_793086871 小时前
SpringCloud 02 服务治理 Nacos
java·spring boot·spring cloud