当前位置: 首页 > news >正文

java面试八股 redis篇

1.redis使用场景

缓存:    缓存三兄弟 穿透 击穿 雪崩 双协一致 持久化 数据过期策略 数据过期策略

分布式锁:   setnx redisson

消息队列 延迟队列  何种数据类型

 

2.缓存击穿

缓存穿透:通过查询一个不存在的数据,数据库查询不到数据也不会写入缓存,导致每次都直接查数据库

 

解决方法一 :缓存空数据,查询返回的数据为空,仍贾昂这个空结果进行缓存

优点:简单

缺点:消耗内存,可能发送不一致问题(一开始 id为 10000 可能数据库中没有,然后缓存了空。后面数据库添加了这个数据 就导致缓存和数据库不一致)

解决方法二:布隆过滤器

根据id查询数据   查询布隆过滤器         布隆过滤器        预热缓存时,预热布隆过滤器      redis查询不到查询数据库

                            不存在 直接返回                                  布隆过滤器存在,返回redis

bitmap(位图)二进制数组   

布隆过滤器 :检索一个元素是否在一个集合追踪

存储数据,通过多个hash函数,获取hash值,将其hash数改为1

优点:内存占用较小,没有多余的key

缺点:实现复杂,存在误判 要求95%以上正确率

 

3.缓存穿透

 

缓存击穿:某一个key设置了过期时间,当key过期的时候,恰好这个时间点对这个key有大量的并发请求过来,这些并发请求可能压倒数据库

解决方法一:互斥锁

线程一: 1查询缓存未命中 2获取互斥锁成功 3查询数据库重建缓存数据

线程二: 1查询缓存未命中  2获取互斥锁失败   3重试 4重试  5缓存命中

优点:强一致

缺点:性能差

 

解决方法二:逻辑过期 (不设置过期时间)

在数据库中添加一个字段  过期时间

线程一: 1查询缓存 发现逻辑过期 已过期  2获取互斥锁成功 3开始一个新的线程去 重构缓存 4返回过期数据

线程二: 1 查询数据库重建缓存数据  2写入缓存 重置逻辑过期时间 3 释放锁

进程三: 1查询缓存 发现逻辑过期 已过期 2获取互斥锁成功 3返回过期数据

优点:高可用 性能优

缺点:无法做到强一致

 

4.缓存雪崩

缓存雪崩:同一时间大量的缓存key同时失效或者redis服务宕机,导致大量请求来到数据库,带来巨大压力

解决方案一:给不同的key的ttl添加随机值

解决方案二:利用redis集群提高服务的可用性  例如 哨兵模式 集群模式

解决方案三:给缓存业务增加 降级限流的策略 在springboot中 使用ngxin  springcloud中 使用gateway网关进行配置

解决方案四:给业务添加多级缓存  Guava或者Caffeine 一级缓存 redis 二级缓存

 

http://www.gsyq.cn/news/43345.html

相关文章:

  • Python + nano-banana API 批量给图片添加文字
  • AI元人文:当一个系统说“我就是一个人”
  • pip install weditor安装出现报错
  • AI大模型应用开发技术架构和技术选型 - 努力-
  • 一个名为 LVGL for Visual Studio 的项目
  • MySQL 基础架构(一):SQL语句的执行之旅
  • 顺序表练习题
  • 关于一种计算递归次数题的思路
  • 前端框架深度解析:Vue 从入门到实战,掌握渐进式开发核心 - 实践
  • 练习上传
  • 重组蛋白表达技术|HEK293细胞蛋白表达|高效重组蛋白生产服务
  • RK3576在智能工程机械中的应用|三屏八摄AI视觉解决方案
  • 做题笔记23
  • 毒盘未转存仅支持在线观看30s
  • AI元人文:理论自省与客观评估
  • 完整教程:《以 Trae 为桥:高效集成豆包 1.6 API 的实践与思考》
  • 从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题
  • 【刷题笔记】AT 经典 90 题
  • CF1758E Tick, Tock
  • javabean和pojo的区别
  • 2025北京一对一辅导/补习/培训/家教/网课推荐榜:金博教育领衔,3家优质机构凭个性化服务出圈,适配多元学习需求
  • Typecho Joe 使用第三方插件开启文章侧边导肮目录 - AutocJS
  • 高级程序语言设计个人作业第四次
  • 什么是 Feed 流?
  • preeee - when
  • 调整 Halo2 Joe 主题友情链接页面样式
  • 基于单片机的元胞自动机仿真系统设计 - 详解
  • (鲜花)万宁五子棋 v0.2
  • 2025年海外仓服务最新推荐企业,欧洲海外仓、美国海外仓、亚马逊海外仓、TEMU海外仓、独立站海外仓服务商解析
  • 实用指南:RSA加密从原理到实践:Java后端与Vue前端全栈案例解析