布隆过滤器 以及缓存穿透问题

news2024/10/7 18:30:28

1. 前言

今天从客观的角度来分析下,什么是缓存穿透,什么是布隆过滤器,布隆过滤器是如何解决缓存穿透的。

2. 适合人群

  • 对布隆过滤器不熟悉的人
  • 对Redis 缓存穿透不熟悉的人

3. 开始

3.1 什么是缓存穿透

在这里插入图片描述

  • 其实通过上图我们可以知道,Redis是起到了一个缓存中间件的作用。我们会将一部分的数据保存到Redis中。当请求过来的时候,可以通过Redis获取到数据。避免了所有的请求到链接数据库,反而对数据库造成了一定的压力
  • 但是有一些恶意者 知道缓存中没有该值,反而故意进行请求。造成了请求穿透了Redis缓存,直接来请求数据库。过多的类似的请求会对数据库造成一定的压力,从而发生宕机。

3.2 什么是布隆过滤器

在这里插入图片描述

  • 其实布隆过滤器就是由一组二进制数组 以及hash函数组成
  • 我们将一个值 经过一系列的hash函数转换后,映射到了二进制数组的下标。此时我们就可以在该下标的位置标记为1. 1的话表示该值存在,反之默认0就是不存在
  • 其大概实现方式如上图所示。但是有可能出现不同的值 经过hash函数转换后,得到相同的值。从而造成了这种hash碰撞。
  • 所以布隆过滤器其实是存在一定的误差的。所以说从布隆过滤器中判断没有的话一定没有,有的话不一定有。 所以无论如何优化,误差一定是存在的。 那如何减少误差呢???

3.2.1 减小布隆过滤器误差

  • 增大数组(预估合适值)
    • 我们可以根据自己的业务需求,合理的增加数组大小,这样可以减少误差率,因为存放的位置多了,误差率自然就小了
  • 增加hash函数

3.3 布隆过滤器解决缓存穿透的问题

首先理解下缓存穿透的本质:就是缓存中没有数据,然后请求穿透了缓存直接请求数据库了。但是布隆过滤器验证数据是否存在准确率是100%的。所以正好跟Redis互补。 所以可以解决缓存穿透的问题

在这里插入图片描述

4. 结束

上述的问题其实就是布隆过滤器跟Redis缓存穿透的大致原理。如果上述有表述不对的地方也欢迎大家指正。

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

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

相关文章

(七)Filter

Filter 表示过滤器,是JavaWeb 三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等..一、Filte…

彻底理解Redis持久化

前言 大家都知道Redis一个内存数据库,它支持2种持久化方式:RDB(Snapshot 内存快照) ,AOF(append only file)。持久化功能将内存中的数据同步到磁盘来避免Redis发生异常导致数据丢失的情况。当Redis实例重启时,即可利用之前持久化的文件实现数…

软件项目管理教程

软件项目管理 1. 软件项目管理 1.1 概述 概念 项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力 软件项目特征 目标性 相关性 周期性 独特性 没有完全一样的项目”,项目的这种独特性对实际项目管理有非常重要的指导意义,因此…

跨境电商日本市场再创纪录,亚马逊失去流量第一位置

从跨境电商服务行业市场分析人员拿到的近期的各平台的销售数据和相关工作总结来看,美国市场微热,而反观欧洲市场则有些遇冷。 此外,近几年的疫情及各国相关政策并未影响到跨境电商市场的整体大好趋势,而伴随着疫情逐渐被控制&…

认真学习MySQL中的MVCC机制

什么是MVCC?MVCC(Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性操作有了保证。换言之&#…

Aspose.PDF for Java系列1-使用前说明

一、关于pdf文件说明 什么是pdf文件? PDF是Portable Document Format的缩写,用来以电子形式显示文档,不受软件、硬件或者操作系统的影响。 最初是由Adobe开发,是一种基于PostScript格式的通用兼容文件格式,现在已成为…

当云原生网关遇上图数据库,NebulaGraph 的 APISIX 最佳实践

本文介绍了利用开源 API 网关 APISIX 加速 NebulaGraph 多个场景的落地最佳实践:负载均衡、暴露接口结构与 TLS Termination。 API 网关介绍 什么是 API 网关 API 网关是位于客户端和服务器之间的“中间人”,用于管理、监控和保护 API。它可以在 API 之…

GAMES101 现代计算机图形学入门

Lecture1 Overview of CG 计算机图形学概述Lecture2 Review of Linear Algebra 向量与线性代数Lecture3 2D Transformation 基础变换(二维)3.1 线性变换 (寻找变换前后直角坐标坐标关系)3.2齐次坐标 Homogeneous Coordinate3.3 仿射变换Affine Transform…

SpringBoot2核心技术(核心功能)- 05、Web开发【5.4 数据响应与内容协商】

4、数据响应与内容协商 1、响应JSON 1.1、jackson.jarResponseBody <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> web场景自动引入了json场景<dependenc…

在黑金zynqmp 上用emmc 启动的那些坑

缘由&#xff1a;由于硬件设计可能存在问题&#xff0c;导致sd 开启动失败&#xff0c;高速的时候&#xff0c;在建立VFS 时就会引起kernel 崩溃&#xff0c;官方的板子就正常&#xff0c;自己的板子第一版硬件可以&#xff0c;第二版就不行 思路&#xff1a;从emmc 启动 替代…

Hadoop 的基础知识

Hadoop 的基础知识1. Hadoop 简介2. Hadoop 的发展简史3. Hadoop 现状4. Hadoop 特性优点5. Hadoop 发行版本6. Hadoop 架构变迁7. Hadoop 集群集体概念1. Hadoop 简介 Hadoop 官网: https://hadoop.apache.org/ Apache Hadoop 软件库是一个框架, 是 Apache 软件基金会的一款开…

IoT 物联网将如何影响 SCADA ?

IoT 物联网将如何影响 SCADA &#xff1f;-钡铼技术 随着工业物联网&#xff08;IIOT&#xff09;或工业4.0的提出&#xff0c;未来工业自动化将是大势所趋&#xff0c;机器设备运行自动化&#xff0c;人不断被机器替代。那么&#xff0c;这些发展方向会对SCADA有什么影响&…

【DevOps:一、开始】

名词安全组类似于防火墙的设置&#xff0c;打开安全组&#xff0c;但要防止被当成矿机&#xff0c;需要设置主机的容器密码VPC专有网络&#xff0c;私有网络&#xff1a;VPC虽然网段相同&#xff1a;但资源物理层隔离&#xff0c;不能使用内网相互通Ipv4网段子网计数器容器平台…

产品设计表现技能的学习要点

在产品设计过程中&#xff0c;当你心中有创意设计时&#xff0c;你需要写下创意设计&#xff0c;并生成一个例子来总结你以前的想法。此时&#xff0c;您需要设计性能。在设计性能的过程中&#xff0c;我们需要使用各种设计工具&#xff0c;这些设计工具的应用技术和方法通常称…

玩以太坊链上项目的必备技能(内联汇编 [inline assembly]-Solidity之旅十八)

概要 大抵是讲到汇编&#xff0c;身为编程开发者的我们脑瓜子早就嗡嗡作响了。看那晦涩难懂的低级汇编代码&#xff0c;敢断言&#xff0c;那一行不是我写的&#xff0c;其他行也不是我写的。 自从C语言问世&#xff0c;而后类C语言犹如雨后春笋般地搅动着IT界&#xff0c;而…

【金猿人物展】实在智能创始人、CEO孙林君:我们为什么坚定在IPA方向努力?...

‍孙林君本文由实在智能创始人、CEO孙林君撰写并投递参与“数据猿年度金猿策划活动——2022大数据产业趋势人物榜单及奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业充满“不确定性”的2022年即将过去&#xff0c;不确定性带来的不仅是挑战&#xff0c;还有新机…

安装 Azure CL 并生成 service principal 文件

1 安装 1.1 Yum⽅式安装 For Linux distributions with yum such as RHEL, Fedora, or CentOS, theres a package for the Azure CLI. This package has been tested with RHEL 7, Fedora 19 and higher, and CentOS 7. sudo rpm --import https://packages.microsoft.com/k…

【nowcoder】笔试强训Day11

目录 一、选择题 二、编程题 2.1最近公共祖先 2.2求最大连续bit数 一、选择题 1.下面哪个标识符是合法的&#xff1f; A. 9HelloWorld B. _Hello World C. Hello*World D. Hello$World java标识符的命名规则应以字母、下划线、美元符开头&#xff0c;后跟字母、下划线…

python实战案例——采集二手车数据并分析其价值

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 环境使用: Python 3.8 Pycharm 专业版是付费的 <激活码可以免费用> 社区版是免费的 模块使用: 第三方模块 需要安装的 requests >>> pip install requests parsel >>&…

【生成对抗网络】GAN生成对抗网络理论知识

GAN生成对抗网络目录引入GeneratorNetwork as Generator为什么要训练Generator&#xff1a;需要输出是分布引入GANBasic Idea of GAN&#xff1a;区分Unconditional generation 与 Conditional generationUnconditional generationConditional generation引入DiscriminatorGene…