redis实现布隆过滤器
思路:
用于快速检查一个元素是否属于某个集合中。它可以快速判断一个元素是否在一个大型集合中,且判断速度很快且不占用太
多内存空间。原理是使用一组哈希函数,将元素【映射】成数组中的【索引位置】,就是将元素转成他在索引中的位置,这个位
置可以是多个,对一个数据进行多次Hash,得到多个Hash值,把这个Hash值保存到数据组中,如果来了一个新的数据,也使
用同样的操作,如果所有哈希函数操作对应的位数组值都为1,那么该元素可能在集合中。布隆过滤器优缺点:
1、时间和空间效率高
2、误判率低
3、支持高并发
缺点:
1、无法删除已添加的数据
2、误判率无法避免
3、无法精确判断元素是否存在减少误判:
1、使用多个布隆过滤器,这种方法可以显著降低误判率,但是会增加存储空间和查询时间。
2、使用加密哈希函数
3、使用高质量的哈希函数:使用高质量的哈希函数可以减少哈希冲突的概率。常见的高质量哈希函数包括MurmurHash、CityHash等。
备注:
1、Murmurhash:
是一种非加密型哈希函数,适用于一般的哈希检索操作。高运算性能,低碰撞率。2、CityHash:
是Google发布的字符串散列算法,和murmurhash一样,属于非加密型hash算法。CityHash算法的开发是受
到了MurmurHash的启发。其主要优点是大部分步骤包含了至少两步【独立的数学运算】。现代 CPU 通常能从这种代码获得
最佳性能。CityHash 也有其缺点:代码较同类流行算法复杂。 Google 希望为速度而不是为了简单而优化,因此没有照顾较
短输入的特例。Google 号称CityHash64 在速度方面至少能提高 30%(这个,肯定不是和murmurhash比咯),并有望提
高多达两倍。此外,这些算法的统计特性也很完备。
关于:CityHash和MurmurHash算法的区别:跳转
布隆过滤器的实现原文章 跳转
demo
redis实现布隆过滤器,使用的是BitMap,只有0和1两个数字//设置布隆过滤器的某个位置值为true。
redisTemplate.opsForValue().setBit(redisKey,index,Boolean.TRUE);//查询某个位置的值
redisTemplate.opsForValue().getBit(redisKey, index); 返回值是boolean类型。int abs = Math.abs(key.hashCode());
long index = (long) (abs % Math.pow(2, 32));
redisTemplate.opsForValue().getBit(redisKey, index); 当然这只使用了一个Hash函数,我们可以通过多个hash函数得到多个Index。
当然不单单是redis可以实现,Guava也支持。
使用Guava布隆过滤器/**
* 布隆过滤器
*/
private static BloomFilter<Integer> bloomFilter = BloomFilter.create(Funnels.integerFunnel(), 存入数据的大小, 误判率);bloomFilter.put(i);//存入数据bloomFilter.mightContain(i)判断布隆过滤器是否包含这个元素,比如存1进去,当需要判断10是否存在时,可能也会返回true。
相关文章:
redis实现布隆过滤器
思路: 用于快速检查一个元素是否属于某个集合中。它可以快速判断一个元素是否在一个大型集合中,且判断速度很快且不占用太 多内存空间。原理是使用一组哈希函数,将元素【映射】成数组中的【索引位置】,就是将元素转成他在索引中的…...
山西电力市场日前价格预测【2023-11-19】
1.日前价格预测 预测说明: 如上图所示,预测明日(2023-11-19)山西电力市场全天平均日前电价为591.63元/MWh。其中,最高日前电价为1500.00元/MWh,预计出现在16:45~20:45。最低日前电价为268.57元/MWh&#x…...
深眸科技革新升级OCR技术,与AI视觉实现有效融合赋能各行业应用
OCR即光学字符识别,是通过扫描仪或工业相机等电子设备检查打印的字符,并通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。 目前,随着机器视觉和人工智能技术的进一步升级,OCR技术实…...
性能测试知多少---系统架构分析
之前有对性能需求进行过分析,那篇主要从项目业务、背景等角度如何抽丝剥茧的将项目的需求抽离出来。在我们进行需求的时候也需要对被测项目的架构有一定的认识,如果不了解被测系统的架构,那么在后期的性能分析与调优阶段将无从下手。 简单系…...
【观察】华为:数智世界“一触即达”,应对数智化转型“千变万化”
毫无疑问,数智化既是这个时代前进所趋,也是国家战略所指,更是所有企业未来发展进程中达成的高度共识。 但也要看到,由于大量新兴技术的出现,技术热点不停的轮转,加上市场环境的快速变化,让数智化…...
我的 2023 秋招总结,拿到了大厂offer
2023秋招小结 前言 & 介绍 作为2024年毕业的学生,在2023年也就是今年秋招。 现在秋招快结束了,人生可能没有几次秋招的机会(应该就一次,最多两次吧哈哈),也有一点感悟,所以小小总结一下。…...
力扣labuladong——一刷day36
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣230. 二叉搜索树中第K小的元素二、力扣538. 把二叉搜索树转换为累加树三、力扣1038. 从二叉搜索树到更大和树 前言 首先,BST 的特性大家应该…...
解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者
文章目录 前言一、什么是 Amazon CodeWhisperer?二、如何使用CodeWhisperer?安装CodeWhisperer插件配置CodeWhisperer生成注释和文档 总结 前言 随着CHATGPT的一声巨响,大语言模型已经成为了一个备受瞩目的创新应用。亚马逊云科技作为全球领…...
01_面向对象高级_static
Static static 的中文意思是"静态",它可以修饰成员变量、成员方法 1. Static 修饰成员变量 static 修饰的成员变量,也称之为"类变量"类变量它是属于类的,与类一起加载,在内存中只有一份,会被类…...
双写绕过 [极客大挑战 2019]BabySQL 1
打开题目 随便输入账号密码 根据报错信息可知这是单引号的字符型注入 那我们试试万能密码 1 or 11 页面报错 1 or 11 页面报错 而且根据报错内容显示是没有我们注入上去的or的 那我们就试试 1 order by 3 # 页面报错,根据报错显示页面过滤掉了or和by 那我们…...
uni.app 使用 mixins 技术统一注入小程序页面分享到好友,分享朋友圈功能
uni.app 使用 mixins 技术统一注入小程序页面分享到好友,分享朋友圈功能 1. 在utils文件夹下创建share.js2. 为所有页面挂载3.单独页面使用 1. 在utils文件夹下创建share.js export default{data(){return {// 默认全局分享内容mixinsShare:{title:首页, //分享标题path:/pag…...
贝叶斯AB测试
AB测试是用来评估变更效果的有效方法,但很多时候会运行大量AB测试,如果能够在测试中复用之前测试的结果,将有效提升AB测试的效率和有效性。原文: Bayesian AB Testing[1] 随机实验,又称AB测试,是行业中评估因果效应的既…...
信息检索与数据挖掘 | 【实验】检索评价指标MAP、MRR、NDCG
文章目录 📚实验内容📚知识梳理📚实验步骤🐇前情提要🐇MAP评价指标函数🐇MRR 评价指标函数🐇NDCG评价指标函数🐇调试结果 📚实验内容 实现以下指标评价,并对…...
读书笔记:彼得·德鲁克《认识管理》第24章 管理岗位的设计与内容
一、章节内容概述 管理岗位应该始终基于必要的任务,应该是一份实实在在的工作,为企业的整体目标做出可见的(如果不是可衡量的话)贡献,还应该具有尽可能广泛的权威和范围。管理者应该接受绩效目标而不是上级领导 的指导和控制。在设计管理岗位…...
某60区块链安全之51%攻击实战学习记录
区块链安全 文章目录 区块链安全51%攻击实战实验目的实验环境实验工具实验原理攻击过程 51%攻击实战 实验目的 1.理解并掌握区块链基本概念及区块链原理 2.理解区块链分又问题 3.理解掌握区块链51%算力攻击原理与利用 4.找到题目漏洞进行分析并形成利用 实验环境 1.Ubuntu1…...
为什么原生IP可以降低Google play账号关联风险?企业号解决8.3/10.3账号关联问题?
在Google paly应用上架的过程中,相信大多数开发者都遇到过开发者账号因为关联问题,导致应用包被拒审和封号的情况。 而众所周知,开发者账号注册或登录的IP地址及设备是造成账号关联的重要因素之一。酷鸟云最新上线的原生IP能有效降低账号因I…...
排列组合C(n,m)和A(n,m)理解及代码实现
排列组合C(n,m)和A(n,m)理解及代码实现-CSDN博客...
EasyExcel导入从第几行开始
//获得工作簿 read EasyExcel.read(inputStream, Student.class, listener); //获得工作表 又两种形形式可以通过下标也可以通过名字2003Excel不支持名字 ExcelReaderSheetBuilder sheet read.sheet(); sheet.headRowNumber(2);...
均匀光源积分球的应用领域有哪些
均匀光源积分球的主要作用是收集光线,并将其用作一个散射光源或用于测量。它可以将光线经过积分球内部的均匀分布后射出,因此积分球也可以当作一个光强衰减器。同时,积分球可以实现均匀的朗伯体漫散射光源输出,整个输出口表面的亮…...
【LeetCode】每日一题 2023_11_18 数位和相等数对的最大和(模拟/哈希)
文章目录 刷题前唠嗑题目:数位和相等数对的最大和题目描述代码与解题思路思考解法偷看大佬题解结语 刷题前唠嗑 LeetCode? 启动!!! 本月已经过半了,每日一题的全勤近在咫尺~ 题目:数位和相等数对的最大和…...
PlayAI多语种同步翻译实测报告:98.7%端到端准确率、<320ms平均延迟,如何在12种语言间零感知切换?
更多请点击: https://intelliparadigm.com 第一章:PlayAI多语种同步翻译功能详解 PlayAI 的多语种同步翻译功能基于端到端神经机器翻译(NMT)架构与实时语音流处理引擎深度融合,支持中、英、日、韩、法、西、德、俄等 …...
TimerBlox:基于电流基准的硬件定时新方案,替代555与MCU
1. 项目概述:重新认识定时电路的设计范式在嵌入式系统、电源管理、电机控制乃至各类信号发生器的设计中,定时功能几乎无处不在。无论是生成一个精确的PWM波去调节LED亮度,还是产生一个可调的时钟信号驱动VCO,亦或是需要一个精准的…...
跨越语言障碍的智能方案:DeepL Chrome扩展助力无缝多语言浏览
跨越语言障碍的智能方案:DeepL Chrome扩展助力无缝多语言浏览 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension 想象一下,当你浏览外文网页时…...
终极React Native Navigation VR应用开发指南:打造沉浸式虚拟环境和菜单导航体验
终极React Native Navigation VR应用开发指南:打造沉浸式虚拟环境和菜单导航体验 【免费下载链接】react-native-navigation A complete native navigation solution for React Native 项目地址: https://gitcode.com/gh_mirrors/re/react-native-navigation …...
如何高效管理命令历史:yargs readline功能的终极指南
如何高效管理命令历史:yargs readline功能的终极指南 【免费下载链接】yargs yargs the modern, pirate-themed successor to optimist. 项目地址: https://gitcode.com/gh_mirrors/ya/yargs 在现代命令行工具开发中,提供流畅的用户交互体验至关…...
从零到一:基于ESP8266 AT指令与华为云IoT平台构建智能设备原型
1. ESP8266硬件准备与固件烧录 第一次接触ESP8266时,我被这个小巧的Wi-Fi模块惊艳到了——它只有指甲盖大小,却能实现完整的网络连接功能。不过在实际使用中,我发现出厂固件往往功能不全,特别是MQTT支持不够完善,这时候…...
避开这些坑!STC8H8K64U IAP升级中FLASH分区与Keil定位的保姆级教程
STC8H8K64U IAP升级实战:FLASH分区设计与Keil定位全解析 第一次接触STC8H8K64U的IAP功能时,我花了整整三天时间才搞明白为什么程序总是莫名其妙地崩溃。直到发现是FLASH分区地址计算错误导致用户程序覆盖了ISP引导区,才恍然大悟。本文将分享从…...
从零构建生产级AI助手:OpenClaw配置实战与自动化工作流指南
1. 项目概述:从零到一,构建你的生产级AI助手工作空间如果你和我一样,已经厌倦了每次配置AI助手时,都要从零开始摸索各种配置文件、脚本和最佳实践,那么这个名为openclaw-config的项目,绝对是你梦寐以求的“…...
LVGL字体优化实战:如何将中文字库放到外部SPI Flash并动态加载(节省内部RAM)
LVGL外部SPI Flash字库优化实战:RAM节省与性能平衡的艺术 在嵌入式UI开发中,中文显示一直是资源受限设备的痛点。当STM32F4系列芯片遇到需要显示多语言菜单的智能家居面板,或是工业HMI设备需要展示复杂参数时,传统的内部字库方案往…...
【NotebookLM考古学研究辅助实战指南】:20年文博技术专家亲授3大冷启动技巧,让田野笔记秒变学术论文
更多请点击: https://intelliparadigm.com 第一章:NotebookLM考古学研究辅助的范式革命 NotebookLM 作为 Google 推出的基于文档理解的 AI 助手,正悄然重塑考古学研究的信息处理范式。传统考古工作依赖大量手写笔记、田野报告、碳十四测年数…...
