Java八股文:Redis篇

目录


1、Redis的使用场景

缓存:穿透、击穿、雪崩、双写一致性、数据过期、淘汰策略。

分布式锁:setnx、redisson

2、什么是缓存穿透,怎么解决

缓存穿透:查询一个不存在的数据,MySQL查询不到数据,也不会写入缓存,就会导致每次请求都会查询数据库。

解决方案

  • 缓存空数据:如果查询到的数据为空,则直接存储空值
  • 使用布隆过滤器:检索KEY,如果不存在则直接过滤。

面试场景

面试官:什么是缓存穿透?怎么解决?

候选人:缓存穿透是指查询一个不存在的数据,MySQL查询不到数据,也不会写入缓存,就会导致每次请求都会查询数据库,可能导致数据库挂掉。解决方案的话,我们通常会使用布隆过滤器。

面试官:那你说说什么是布隆过滤器?

候选人:布隆过滤器主要是用于检索元素是否存在于集合中,我们当时使用redission实现的布隆过滤器。其核心就是一个大的位数组,比如100万个0,还有很多哈希函数,每插入一条数据,就用这些哈希函数算出多个位置,把这些位置的值设置为1,查询数据时,用相同的Hash函数再算一遍,如果位置都是1,则元素存在,否则不存在。

相关推荐
cheems95271 分钟前
[SpringMVC] Spring MVC 留言板开发实战
java·spring·mvc
BioRunYiXue2 分钟前
AlphaGenome:DeepMind 新作,基因组学迎来 Alpha 时刻
java·linux·运维·网络·数据库·人工智能·eclipse
fengci.5 分钟前
php反序列化(复习)(第四章)
android·开发语言·学习·php·android studio
Jasmine_llq5 分钟前
《B3923 [GESP202312 二级] 小杨做题》
开发语言·状态标记算法·顺序输入输出算法·递推迭代算法·循环遍历算法·条件终止算法·累加求和算法
whatever who cares8 分钟前
android中,全局管理数据/固定数据要不要放一起?
android·java·开发语言
liu****13 分钟前
第15届省赛蓝桥杯大赛C/C++大学B组
开发语言·数据结构·c++·算法·蓝桥杯·acm
C1829818257513 分钟前
AI idea 集成claude code插件
java·ide·intellij-idea
IT 行者14 分钟前
解决 IntelliJ IDEA 内存占用高的两个优化策略:GPU 渲染与虚拟内存配置
java·ide·intellij-idea·ai编程
Aric_Jones16 分钟前
从实战理解异步、并发并行与GIL:FastAPI vs SpringBoot
java·spring boot·fastapi
云烟成雨TD19 分钟前
Spring AI 1.x 系列【27】Chat Memory API:让 LLM 拥有上下文记忆能力
java·人工智能·spring