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

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

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

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

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

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

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

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

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

相关推荐
ShineWinsu16 小时前
对于C++:IO流状态的详细解析
c++·面试·io·cin·io流状态·goodbit·failbit
M-Robots echo16 小时前
轻量化裁剪方案解析:M-Robots 模块化构建,适配高低端各类机器人硬件平台
java·机器人·ros·开源社区·atomgit·m-robots
「PlanA」16 小时前
测试开发面经001
面试
不可求~17 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
JL1517 小时前
面试项目被问到自闭-如何把课设包装成亮眼项目
面试·职场和发展
mldong18 小时前
用 DDD 设计工作流引擎:聚合根与充血模型
java·架构
mqiqe19 小时前
AgentScope Java Harness:4. 双层记忆系统 让 Agent 拥有真正的“长期大脑“
java·开发语言
伍一5119 小时前
03-文件管理模块-一个看似简单的模块藏着多少细节
java·ruoyi·若依
gugucoding19 小时前
46. 【Java】JUC并发工具:让并发更简单
java·开发语言
Nebula_g19 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法