Java面试题:Redis1_Redis的使用场景和如何解决Redis缓存穿透问题

Redis使用场景常见问题

缓存

缓存三兄弟(穿透,击穿,雪崩)
双写一致
持久化
数据过期策略
数据淘汰策略

分布式锁

setnx,redisson

消息队列,延迟队列

解决Redis缓存穿透问题

缓存穿透问题

请求->redis缓存->mysql数据库

当一个新请求到来时,先会访问redis缓存寻找数据,如果在缓存中没有找到数据,就会去数据库中寻找,找到后将数据缓存到redis

当查询一个不存在的数据时,数据库中找不到数据,也就不会在缓存中写入,即导致每次请求都会查找数据库

如果出现大量的类似请求,就会频繁地冲击数据库,导致数据库宕机(攻击)

缓存传透简而概之就是请求穿透了redis缓存直接冲击数据库

缓存穿透的解决方案

缓存空数据

即使查询数据库返回的数据为空,仍然对这个空结果进行缓存

这种方法虽然简单,但是存在问题

首先是消耗内存,即使查询不存在的数据也进行缓存

其次是可能出现不一致的问题

当数据库中的不存在的数据被赋值时,缓存中的数据仍然为空,即数据库和缓存数据不一致

布隆过滤器

在向redis查询数据之前,会先查询布隆过滤器

如果在布隆过滤器中不存在,那就会直接返回

在缓存预热时,需要先预热布隆过滤器

bitmap(位图)

一个以bit为单位的数组,数组中的每个单元只能存储二进制数0或1

存储数据:

每个数据通过三个不同的hash函数获取hash值,根据hash值的计算结果将数组的对应位置改为1

请添加图片描述

每次查询时,使用相同的hash函数进行计算,如果相同的数组位置都为1即代表存在,可以放行,如果不存在就直接返回

数组越大误判率越低,数组越小误判率越高
一般在5%以内,数据库可以接受
RBloomFilter<String> bloomFilter
bloomFilter.tryInit(size,0.05);
//在布隆过滤器初始化数据,误判率设置为0.05

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM(Java虚拟机)笔记

面试常见&#xff1a; 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM&#xff0c;什么是栈溢出StackOverFlowError? 怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取&#xff1f;怎么分析Dump文件&#xff1f;谈谈JVM中&#xff0c;类加载器你的认识…

前端最新面试题(基础模块HTML/CSS/JS篇)

目录 一、HTML、HTTP、WEB综合问题 1 前端需要注意哪些SEO 2 img的title和alt有什么区别 3 HTTP的几种请求方法用途 4 从浏览器地址栏输入url到显示页面的步骤 5 如何进行网站性能优化 6 HTTP状态码及其含义 7 语义化的理解 8 介绍一下你对浏览器内核的理解? 9 html…

【C++】vector常见的使用方式

前言&#xff1a;在上一篇中我们讲到了string类的模拟实现&#xff0c;今天我们将进一步的去学习vector的一些常用的使用方法。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质量&#xff23;学习 &#x1f448; &#x1f4af;代码仓…

命运方舟台服注册 命运方舟台服怎么注册?不会操作看这里

命运方舟台服注册 命运方舟台服怎么注册&#xff1f;不会操作看这里 命运方舟作为今年备受瞩目的一款MMORPG类型游戏&#xff0c;在上线前的预约数量已经一次又一次创下新高。这款游戏的开发商Smile gate真是给玩家们带来了一款让人眼前一亮的作品。游戏创建在虚幻引擎的基础…

用esp prog烧录ESP32-C3板踩坑

附ESP32C3的GPIO一览&#xff1a; vscode选择Jtag烧录&#xff0c;终端输出esp_usb_jtag: could not find or open device&#xff1a; D:\Devtools\Espressif\tools\openocd-esp32\v0.12.0-esp32-20230921\openocd-esp32\bin\openocd.exe -f board/esp32s3-builtin.cfgOpen O…

【电路笔记】-带阻滤波器

带阻滤波器 文章目录 带阻滤波器1、概述2、典型带阻滤波器配置3、带阻滤波器示例14、陷波滤波器5、带阻滤波器示例26、总结带阻滤波器也称为陷波滤波器,阻止并拒绝位于其两个截止频率点之间的频率,并传递该范围两侧的所有这些频率。 1、概述 通过将基本 RC 低通滤波器与 RC …

ElasticSearch教程(详解版)

本篇博客将向各位详细介绍elasticsearch&#xff0c;也算是对我最近学完elasticsearch的一个总结&#xff0c;对于如何在Kibana中使用DSL指令&#xff0c;本篇文章不会进行介绍&#xff0c;这里只会介绍在java中如何进行使用&#xff0c;保证你看完之后就会在项目中进行上手&am…

Arduino烧录esp8266

default_encoding: cp936 Assume aggressive ‘core.a’ caching enabled. Note: optional global include file ‘arduino_modified_sketch_764314\Blink.ino.globals.h’ does not exist. Read more at https://arduino-esp8266.readthedocs.io/en/latest/faq/a06-global-bui…

写字静不下心?不如试试这些“笨方法”

夏天悄悄热起来啦&#xff5e;有人说&#xff0c;想踏踏实实写一会儿&#xff0c;但又静不下心&#xff0c;耐不住性子&#xff0c;快收下这四个小锦囊&#xff0c;与古人一起笨拙精进吧&#xff01;    1、不论输赢      每次课前&#xff0c;暄桐林曦老师总会强调&am…

内网-win1

一、概述 1、工作组&#xff1a;将不同的计算机按功能(或部门)分别列入不同的工作组 (1)、查看&#xff08;windows&#xff09; 查看当前系统中所有用户组&#xff1a;打开命令行--》net localgroup查看组中用户&#xff1a;打开命令行 --》net localgroup 后接组名查看用户…

FreeRTOS任务调度机制(源码讲解)

任务的调度机制(核心是链表)&#xff01;&#xff01;&#xff01; 使用链表来管理任务 在我前面写的FreeRTOS任务(深入到源码进行分析)&#xff0c;我创建了三个任务&#xff0c;他们的优先级都是一样的&#xff0c;所以他们在FreeRTOS中是轮流执行的&#xff0c;实际上&…

19.1 简易抽奖

准备一个数组&#xff0c;里面添加10个奖品数据&#xff0c;让奖品数据快速的在盒子中随机显示&#xff0c;通过按钮控制盒子里面的内容停止。 效果图&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

npm install pubsub-js报错的解决汇总

我在练习谷粒商城P83时&#xff0c;选择分类时触发向后端请求选择分类catId绑定的品牌数据&#xff0c;发现前端控制台报错&#xff1a; "PubSub is not definded",找不到pubsub。 因为缺少pubsub包&#xff0c;所以开始安装此包。 于是在网上一顿搜索猛如虎&…

xilinx ip自带XDC只读

检查生成的IP核再目录下显示的文件类型是不是.xcix 如果是的话&#xff0c;重新生成为.xci 再二次编辑即可 或者 将框柱的部分不选择&#xff0c;从新生成

《计算机工程与应用》最新投稿经验2024年5月

研二下第一次投稿&#xff0c;深度学习长时间序列预测方向&#xff0c;选择了《计算机工程与应用》期刊&#xff0c;是CSCD扩展刊北大核心&#xff0c;且在24年被EI收录等等。4.10交稿到最后5.31收到录用通知&#xff0c;历时不到2个月&#xff0c;总的来说编辑部效率确实高。 …

LLM背后的基础模型 1

写在最前面的话 任何开源技术是最有生命力的&#xff0c;也是最具分享精神的。一直觉得大模型领域需要有一个系列能够从零开始系统性的讲述领域知识&#xff0c;给与这个领域的从业人员或者对其有兴趣的门外汉及时的帮助。国外承担“布道者”的公司众多&#xff0c;而数砖公司…

云技术最全详解

目录 云技术 1.定义 2.特点 2.类型 2.1IaaS&#xff08;基础设置即服务&#xff09; 2.2PaaS&#xff08;平台即服务&#xff09; 2.3SaaS&#xff08;软件即服务&#xff09; 3.云技术模型 3.1公有云 3.2私有云 3.3混合云 云技术 1.定义 云技术是一种云计算和存储…

如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR

如何让 LightRoom 每次导入照片后不自动弹出 SD 卡 LR 在导入窗口左上角有个选项&#xff1a; 导入后弹出 把这个去掉就可以了

Qt Creator(Qt 6.6)拷贝一行

Edit - Preference - Environment&#xff1a; 可看到&#xff0c;拷贝一行的快捷键是&#xff1a; ctrl Ins

数据结构-堆(带图)详解

前言 本篇博客我们来仔细说一下二叉树顺序存储的堆的结构&#xff0c;我们来看看堆到底如何实现&#xff0c;以及所谓的堆排序到底是什么 &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;数据结构_普通young man的博客-CSDN博客 若有问题 评…