【redis】布隆过滤器BloomFitter

news2024/10/7 12:20:46

【redis】布隆过滤器BloomFitter


文章目录

  • 【redis】布隆过滤器BloomFitter
  • 前言
  • 一、面试题
  • 二、是什么
    • 1、设计思想: 本质就是判断具体数据是否存在于一个大的集合当中
  • 三、布隆过滤器特点
    • 1、重点 有,是可能有,无是一定无
    • 2、小总结
  • 四、原理
    • 1、原理
    • 2、添加、查询key
    • 3、hash碰撞导致数据不精准
    • 4、hash碰撞
    • 5、过滤器误判,为什么不删除?
    • 6、小总结
  • 五、使用场景
    • 1、解决缓存穿透
    • 2、黑名单校验,识别垃圾邮件
  • 六、尝试手写布隆过滤器,结合bitmap自研一下体会思想
    • 1、整体架构
    • 2、设计步骤
    • 3、java端 的插入 读取操作
      • 插入mysql+redis
      • 读取redis+mysql
      • 二进制数组构建过程 理论
      • 布隆过滤器初始化加载工具,即上一步的具体化操作
      • 检查性工具 检查是否在布隆过滤器中存在
      • 重新修改最开始的 读写操作
      • 测试说明
  • 七、布隆过滤器优缺点
    • 优点
    • 缺点
    • 布谷鸟过滤器(了解)


前言

在这里插入图片描述


一、面试题

在这里插入图片描述


二、是什么

在这里插入图片描述

1、设计思想: 本质就是判断具体数据是否存在于一个大的集合当中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三、布隆过滤器特点

在这里插入图片描述

1、重点 有,是可能有,无是一定无

在这里插入图片描述

2、小总结

在这里插入图片描述


四、原理

在这里插入图片描述

1、原理

在这里插入图片描述

2、添加、查询key

在这里插入图片描述

3、hash碰撞导致数据不精准

在这里插入图片描述
在这里插入图片描述

4、hash碰撞

在这里插入图片描述

5、过滤器误判,为什么不删除?

在这里插入图片描述

6、小总结

在这里插入图片描述


五、使用场景

在这里插入图片描述

1、解决缓存穿透

在这里插入图片描述
在这里插入图片描述

2、黑名单校验,识别垃圾邮件

在这里插入图片描述


六、尝试手写布隆过滤器,结合bitmap自研一下体会思想

在这里插入图片描述

1、整体架构

在这里插入图片描述

2、设计步骤

3、java端 的插入 读取操作

插入mysql+redis

在这里插入图片描述

读取redis+mysql

在这里插入图片描述

二进制数组构建过程 理论

在这里插入图片描述

布隆过滤器初始化加载工具,即上一步的具体化操作

在这里插入图片描述

检查性工具 检查是否在布隆过滤器中存在

在这里插入图片描述

重新修改最开始的 读写操作

读取时判断是否在 白名单中
在这里插入图片描述

测试说明

在这里插入图片描述


七、布隆过滤器优缺点

优点

在这里插入图片描述

缺点

在这里插入图片描述

布谷鸟过滤器(了解)

主流还是布隆过滤器,没有升级换代的需求。。。


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

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

相关文章

Node【包】

文章目录 🌟前言🌟Nodejs包🌟什么是包?🌟自定义包🌟包配置文件🌟示例🌟Package.json 属性说明🌟语义化版本号🌟package.json示例 🌟符合CommonJS规…

怎么做好管综深化设计?高效就靠它

管线综合深化设计是指将设计阶段完成的机电管线进一步深化排布,结合建筑装修的要求,根据管线不同的性质与功能统筹管线位置排布。管线综合是 BIM 技术现阶段最基础也是应用最广泛的点,如何使机电各系统的使用功能效果达到最佳,整体…

(排序11)排序的时间复杂度,空间复杂度,稳定性总结

图片总结 内排序时间复杂度总结 内部排序:数据元素全部放在内存中的排序。. 在内排序当中比较快的有希尔排序,堆排序,快速排序,归并排序,这四个排序的时间复杂度都是O(n*logn)。其中希尔排序的时间复杂度更加准确的来…

RB-PEG-COOH,罗丹明聚乙二醇羧基;RhodamineB-PEG-acid;RB-PEG2000-COOH

RB-PG-COOH, 罗丹明聚乙二醇羧基 中文名称:罗丹明-聚乙二醇-羧基 英文名称:RhodamineB-PEG-acid RB-PEG-COOH 性状:固体或粘性液体,取决于分子量 溶剂:溶于水和DCM、DMF、DMSO等常规性有机溶剂 分子量&#xff1…

MySQL运维28-MySQL复制

文章目录 1、MySQL复制模式2、MySQL复制的兼容性3、与MySQL复制相关的两种日志3.1、中继日志3.2、MySQL复制的状态日志 4、MySQL主从复制的实施示例4.1、主从库安装4.2、主库配置4.3、从库的配置4.4、启动复制和确认成功 5、对MySQL复制的监控6、MySQL监控的运维6.1、在从库修改…

ASEMI代理ADAU1979WBCPZ原装ADI车规级ADAU1979WBCPZ

编辑:ll ASEMI代理ADAU1979WBCPZ原装ADI车规级ADAU1979WBCPZ 型号:ADAU1979WBCPZ 品牌:ADI /亚德诺 封装:LFCSP-40 批号:2023 安装类型:表面贴装型 引脚数量:40 类型:车规级…

Linux串口应用编程

在Linux系统中,操作设备的统一接口就是:open/ioctl/read/write。 对于UART,又在ioctl之上封装了很多函数,主要是用来设置行规程。 所以对于UART,编程的套路就是: 使用open函数打开串口设置行规程&#xff…

vue---自定义指令

目录 1、为什么使用自定义指令? 2、自定义指令 3、自定义指令使用 1、为什么使用自定义指令? 什么时候我们需要去自定义一个指令呢? 事件修饰符,很大的程度上我们是为了让我们的代码更加显得是数据驱动的以及可测试的&#x…

姿态识别、手势识别(附代码)

姿态识别技术是一种基于计算机视觉的人体姿态分析方法,可以通过分析人体的姿态,提取出人体的关键点和骨架信息,并对人体的姿态进行建模和识别。随着深度学习技术的发展,近年来姿态识别技术得到了广泛的应用和研究,其中…

React框架的介绍、特点、安装及基本使用流程

一、react介绍 官网:React (docschina.org) react是由facebook前端开发团队开发和维护的js框架 react的实现功能类似VUE,但是由于国外的开发风格,导致在react上,并没有对数据渲染的步骤进行封装,需要开发者更多的使…

【计算几何】点在几何图形中定位问题

一、说明 点的定位属于几何查找,是计算几何中的一个重要的问题。其包括点在三角形内外,多边形内外判断,平面剖分中的位置等。 二、点和几何区域的关系 2.1 点和线的位置关系 两个平行向量的叉乘等于0。如果两个向量的叉乘等于0&#xff0c…

Kali下开启远程管理-ssh

1、使用管理员root修改/etc/ssh/sshd_config 配置文件 ┌──(kali㉿kali)-[~] └─# sudo -i //切换管理root ┌──(root㉿kali)-[~] └─# vim /etc/ssh/sshd_config PermitRootLogin prohibit-password > yes PasswordAuthentication 去掉#号 2、重启ssh.serv…

大数据项目之数仓相关知识

第1章 数据仓库概念 数据仓库(DW): 为企业指定决策,提供数据支持的,帮助企业,改进业务流程,提高产品质量等。 DW的输入数据通常包括:业务数据,用户行为数据和爬虫数据等 ODS: 数据…

基于计算机视觉手势识别控制系统YoLoGesture (利用YOLO实现) 有详细代码+部署+在线服务器尝试+开源可复现

基于计算机视觉手势识别控制系统YoLoGesture (利用YOLO实现) 在线服务器体验网址: https://kedreamix-yologesture.streamlit.app/ 文章目录 基于计算机视觉手势识别控制系统YoLoGesture (利用YOLO实现)1. 项目已完成的部分2. 部分尝试结果3. 项目整体框架3.1. 数据…

如何实现多个窗口同步操作?技术层面?借助工具?

朋友们!你们是否曾经遇到过需要在多个窗口之间进行同步操作的情况?例如,你想在不同的浏览器窗口中同时滚动或者放大缩小网页。如果你有这样的需求,东哥今天就从技术和借助专业工具两方面给大家讲解如何实现对多个相同布局的窗口进…

【C++入门必备知识:|引用| +|auto关键字| + |范围for|】

【C入门必备知识:|引用| |auto关键字| |范围for|】 ①.引用Ⅰ.引用概念Ⅱ.引用使用Ⅲ.引用特性Ⅳ.使用场景1.做函数参数意义: 2.做函数返回值意义: Ⅵ.常引用Ⅶ.引用与指针区别 ②.auto关键字1.使用规则 ③.基于范围的for循环1.使用规则 在这…

如何在你的云服务器/云主机上更新并使用最新版本的python(python3.11)

更新并使用最新版本的python3.11 第一步,登录云服务器,并更新系统包 打开您的终端(Terminal)或使用任意SSH客户端,输入如下命令来登录云主机: ssh 用户名IP地址 在输入密码后,您将成功登录到云…

【软考备战·希赛网每日一练】2023年4月21日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题 三、知识查缺 题目及解析来源:2023年04月21日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 第二题 解析: 活动图 是一种特殊的状态图,它展现了在系统…

【谷歌扩展程序入门】简单制作一个查看网页结构的扩展程序

简言 在想看网页结构的时候一般会F12查看元素内容。 太麻烦了 还不简单方便。 扩展程序 扩展建立在诸如 HTML、JavaScript 和 CSS 之类的 Web 技术之上。它们在单独的沙盒执行环境中运行并与 Chrome 浏览器交互。 扩展允许您通过使用 API 修改浏览器行为和访问 Web 内容来“扩…

wsl2-ubuntu20编译Lineage17(Android10)

WSL2安装Ubuntu20 wsl2安装 略 安装Ubuntu20 wsl.exe --list --online 列出当前支持的所有系统,不过这个命令是从https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json来获取,所以有很大概率会失败。失败就…