Java八股文:Redis篇

目录


1、Redis的使用场景

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

分布式锁:setnx、redisson

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

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

解决方案

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

面试场景

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

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

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

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

相关推荐
精神小伙就是猛6 分钟前
C# Task/ThreadPool async/await对比Golang GMP
开发语言·golang·c#
行稳方能走远8 分钟前
Android java 学习笔记 1
android·java
kaico20188 分钟前
多线程与微服务下的事务
java·微服务·架构
zhglhy9 分钟前
QLExpress Java动态脚本引擎使用指南
java
小瓦码J码10 分钟前
使用AWS SDK实现S3桶策略配置
java
办公自动化软件定制化开发python13 分钟前
基于PyQt5开发的文件智能查找工具,开源思路+完整实现,解决办公文件检索痛点
开发语言·qt
工程师00713 分钟前
C#状态机
开发语言·c#·状态模式·状态机
廋到被风吹走13 分钟前
【Spring】Spring Cloud 配置中心动态刷新与 @RefreshScope 深度原理
java·spring·spring cloud
牧小七14 分钟前
springboot 配置访问上传图片
java·spring boot·后端
一路向北⁢21 分钟前
短信登录安全防护方案(Spring Boot)
spring boot·redis·后端·安全·sms·短信登录