【Redis 开发】缓存穿透解决

news2024/11/20 1:44:38

缓存穿透

  • 缓存穿透
    • 缓存空对象
    • 布隆过滤
    • 缓存空对象实现
    • 其他缓解方式

缓存穿透

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存就永远不会生效,这些请求都会打到数据库

常见的解决方案有两种:
缓存空对象布隆过滤

缓存空对象

当数据库中查询无果的时候,我们在对应的缓存中写入一个null,在下一次访问的时候就不会到达数据库,由缓存返回一个null

缺点:
额外的内存消耗 (可以为key设置定时有效缓解)
可能造成短期的不一致 (我在数据库插入一条数据,但是对应的缓存中存的是null)

布隆过滤

是一种算法,在客户端与Redis端之间加入了一层布隆过滤器
在这里插入图片描述
首先通过布隆过滤器,如果没有数据就拒绝访问,底层时间通过数据库中的数据通过哈希算法算出哈希值存到布隆过滤器中

优点:内存占用少,没有多余的key
缺点:实现复杂,存在误判可能

缓存空对象实现

在服务层判断数据库的时候加入缓存空对象方面的技术

//user是数据库返回的数据
if(user==null)
{
    StringRedisTemplate.opsForValue().set(key, " ",10,TimeUnit.MINUTES)
    
}

这样下一次查询的时候就会有效缓解缓存穿透的问题

其他缓解方式

  1. 增强id的复杂度
  2. 提高对数据的基本校验
  3. 加强用户权限校验
  4. 做好热点参数的限流

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

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

相关文章

某某志蓝队初级一面分享

某某志蓝队初级一面分享 所面试的公司:某某志 薪资待遇:待定 所在城市:河北 面试职位:蓝队初级 面试过程:我感觉面试官的语速有点点快,就像两个字读成一个字的那种,在加上我耳朵不太好&…

100-Python Django 在线电子商城

基于Django的在线电子商城开发实践 一、引言 随着互联网的快速发展,电子商务已经成为人们日常生活中不可或缺的一部分。在线电子商城作为电子商务的重要组成部分,为用户提供了便捷的购物体验。本文将以Python的Django框架为基础,介绍如何开…

WPS-EXCEL:快速删除多个线条对象

问题图 我需要将线条快速删除 方法一:使用定位对象功能 使用定位功能:按Ctrl G打开定位对话框。在对话框中,点击“定位条件”。 定位对象:在定位条件对话框中,勾选“对象”选项,然后点击“确定”。这样,…

4 -25

1 100个英语单词两篇六级阅读 2 cf补题; 3 仿b站项目看源码 debug分析业务。 上了一天课,晚上去健身。 物理备课,周六去上课腻。 五一回来毛泽东思想期末考试,概率论期中考试。

GoLand 2021.1.3 下载与安装

当前环境:Windows 8.1 x64 1 浏览器打开网站 https://www.jetbrains.com/go/download/other.html 找到 2021.1.3 版本。 2 解压 goland-2021.1.3.win.zip 到 goland-2021.1.3.win。 3 打开 bin 目录下的 goland64.exe,选择 Evaluate for free -- Evalu…

张大哥笔记:如何选择一个好项目?

互联网已经改变了我们的日常生活,使我们可以便捷地获取信息,更快地完成工作,更有效地进行沟通,并且可以让我们更容易地获得服务。随着技术的发展,互联网将继续改变我们的生活.... 有时候我们会感叹,互联网发…

项目上线流程(保姆级教学)

01:注册阿里云账户 02:登录阿里云 03:在桌面新建记事本保存个人账号密码等信息 04:完成重置密码 05:安装宝塔面板 命令行 yum install -y wget && wget -O install.sh http://download.bt.cn/install/instal…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 输入类控件 | Combo Box的使用及说明 文章编号&#xff…

东北大学工程训练CNC加工中心(坤图)

东北大学加工中心(CNC)采用的系统为FANUC系统。 要求学生自主设计图样,编写GCODE文件,操作电脑使机床按设计路径铣出图案。 本人设计的图样为坤坤图 图为用CAD设计绘制的图样。 计算坐标,设计铣刀轨迹,得…

FPGA设计篇——波形绘制软件

FPGA设计篇——波形绘制软件 写在前面一、Visio二、TimeGen三、WaveDrom写在最后 写在前面 在FPGA设计过程中,经常需要编写设计文档,其中,不可缺少的就是仿真波形的绘制,可以直接截取Vivado或者Modelsim平台实际仿真波形&#xff…

Java面试八股之Java中==和equals()的区别

Java中和equals()的区别 操作符: 对于基本数据类型(如int、char、boolean等),比较的是它们的值是否相等。 对于对象引用类型,比较的是两个对象的内存地址(即是否指向同一个对象实例)。也就是…

ROS标定海康威视摄像头

ROS视摄像头标定----海康威视 引言: ​ 摄像头标定是为了确保视觉系统能够准确反映现实世界中的对象,并消除图像中的畸变效果。在本实验中,我们使用了ROS中的功能包进行摄像头标定。标定的原理包括畸变校正和摄像头参数估计。通过移动标定板并…

美国服务器vs香港服务器,哪个网站部署打开更快一些?

网站打开速度受多种因素影响,包括服务器地理位置、网络质量、带宽等。用户距离服务器越近,访问速度越快。对于中国大陆用户而言,香港的服务器可能会提供更快的网站访问体验,因为香港距离大陆较近,且网络连接通常较好。…

ssm079基于SSM框架云趣科技客户管理系统+jsp

客户管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本客户管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处…

【ZYNQ】zynq启动模式及程序固化

一、前言 由于zynq含有arm cpu ,其启动模式由ps主导,与纯逻辑的fpga不相同,此处做一个记录。 二、zynq启动模式 关于zynq的启动模式详细内容可以参考官方文档:ug585-Zynq 7000 SoC Technical Reference Manual,第六章。 2.1 启…

centos 7 yum install -y nagios

centos 7 systemctl disable firewalld --now vi /etc/selinux/config SELINUXdisabled yum install -y epel-release httpd nagios yum install -y httpd nagios systemctl enable httpd --now systemctl enable nagios --now 浏览器 IP/nagios 用户名:…

GPT的全面历史和演变:从GPT-1到GPT-4

人工智能新篇章:GPT-4与人类互动的未来! 本文探讨了生成式预训练 Transformer (GPT) 的显着演变,提供了从开创性的 GPT-1 到复杂的 GPT-4 的旅程。 每次迭代都标志着重大的技术飞跃,深刻影响人工智能领域以及我们与技术的互动。 我…

Codeforces Round 939 D. Nene and the Mex Operator 【构造、思维、状压】

D. Nene and the Mex Operator 题意 给定一个长度为 n n n 的正整数数组 a a a,定义操作: 选定一个区间 [ l , r ] [l, r] [l,r],将区间内的数字替换成: m e x ( a l , a l 1 , . . . , a r ) mex(a_l,a_{l1},...,a_r) mex(…

探索适合你的6个兼职副业之路

在当下这个多元化的社会,寻找一份适合自己的兼职副业已成为许多人的追求。市场上的选择繁多,从线上调查到电子商务,每一种副业都有其独特的魅力和挑战。下面,我将为大家介绍六种热门的兼职副业选择,希望能够帮助你找到…

深度学习检测算法YOLOv5的实战应用

在当前的检测项目中,需要一个高效且准确的算法来处理大量的图像数据。经过一番研究和比较,初步选择了YOLOv5作为算法工具。YOLOv5是一个基于深度学习的检测算法,以其快速和准确而闻名。它不仅能够快速处理图像数据,还能提供较高的…