Java八股文:Redis篇

目录


1、Redis的使用场景

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

分布式锁:setnx、redisson

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

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

解决方案:

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

面试场景:

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

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

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

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

相关推荐
天远数科3 分钟前
Java数据工程:利用天远人车核验加强版优化智慧高速ETC发行合规体验
java·人工智能
.Bryce.4 分钟前
在智能体中使用A2A工具:让大模型自己决定“该找谁帮忙“
android·java·服务器·redis·后端·agent·a2a
xiaoqiMikko7 分钟前
fastjson 1.2.84 的补丁关掉了一个缓存:addAccept 包前缀白名单下,反序列化慢了 13~28 倍
java·后端·性能优化
XIAEE38 分钟前
转生到儿童编程异世界:我用 Vue 和 Scratch 建了一座 DREAM 学院
java·spring
XIAEE44 分钟前
初次使用 Node + Koa + MongoDB 搭建服务器:从零到第一个 API
java·spring
m0_587383001 小时前
无人自助拼豆系统核心功能开发与部署落地全流程实战指南
java·经验分享·后端·struts·架构
雷一言说1 小时前
Spring AI 2.0:RAG 文档分块大小策略选择
java·spring
XIAEE1 小时前
Java 世界历险记:从一行 System.out.println 到整个 Spring 宇宙
java·spring
XIAEE1 小时前
微前端狂想曲:我试图让三个不同门派的前端住进同一栋楼
java·spring
XIAEE1 小时前
Linux 生存指南:从"终端恐惧症"到"命令行老司机"
java·spring