pom.xml<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>28.0-jre</version>
                   
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-15 03:51:50
                            
                                167阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、简述关于布隆过滤器的详细介绍,我在这里就不再赘述一遍了我们首先知道:BloomFilter使用长度为m bit的字节数组,使用k个hash函数,增加一个元素: 通过k次hash将元素映射到字节数组中k个位置中,并设置对应位置的字节为1。查询元素是否存在: 将元素k次hash得到k个位置,如果对应k个位置的bit是1则认为存在,反之则认为不存在。Guava 中已经有具体的实现,而在我们实际生产环            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-19 18:08:57
                            
                                150阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这一篇是我重写的,之前写过一篇发现面试的时候问的问题虽然大概能解决,但是有几个点没有整理到位,所以自己给自己列出了很多面试常见的问题,准备一篇一篇去解决。本文整体思路是延续之前的那篇文章,在此基础之上添加了几个点而已。布隆过滤器主要是在redis中问的比较多,因此像这种数据结构类的,主要是考原理以及使用场景。下面一点一点开始逐步介绍。一、认识布隆过滤器1、概念布隆过滤器其实就是加快判定一个元素是否            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-01 12:26:27
                            
                                81阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter1、布隆过滤器的起源,用途2、布隆过滤器的概            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-05-26 08:23:00
                            
                                1336阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            布隆过滤器适合大数据判重的场景,如网络爬虫中判断一个URL是否已经爬取过,判断一个用户是否在黑名单中,判断一个邮件是否是垃圾邮件,等等。优点:占用空间小,效率高,简而言之,就是以正确率换空间和时间。缺点:有一定的误判率,一个URL经过布隆过滤器判断没爬取过,那么一定没爬取过,一个URL经过布隆过滤器判断爬取过,可能并没有爬取过,这种情况会有误判。布隆过滤器本身是基于位图的,是对位图的一种改进,位图            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-19 21:39:35
                            
                                120阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            布隆过滤器 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制矢量和一系列随机映射函数。布隆过滤器用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。基本概念 如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Has            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-26 21:11:23
                            
                                78阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            网上有很多的原理解释说明,此处不再对bloom filter做过多的说明,直接上代码(注:代码参考了网上其他博客的实现,比如布隆过滤器(Bloom Filter)Java实现)/**
  * 项目名:SpiderCrawler
  * 文件名:BloomFilterTest.java
  * 作者:zhouyh
  * 时间:2014-8-29 下午02:54:56
  * 描述:TODO(用一句            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-25 21:56:50
                            
                                74阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            缓存穿透的问题?缓存穿透: 指定使用一些不存在的key进行大量的查询Redis,导致无法命中,每次请求都会传到持久层进行查询,导致对数据库的压力非常大。那摩有哪些解决方案呢?对我们的服务接口实现限流,用户授权、黑名单和白名单拦截从缓存和数据库都查询不到结果的话,一样将数据库空值结果缓存到Redis中:设置30s的有效期避免使用同一个id对数据库攻击,但是如果真是黑客要搞你,那摩他随机生成的id肯定            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-15 13:48:20
                            
                                21阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            谈谈布隆过滤器(Bloom Filter)?我们都知道布隆过滤器对于缓存穿透是一个很好的解决方案。那什么是布隆过滤器呢?布隆过滤器是一个用一定的误判率来换取空间效率的概率性数据结构。它本身是一个很长的二进制数组,只存储0和1,主要用于判断某个元素是否存在:0代表不存在,1代表存在。布隆过滤器存入数据的过程1.通过K个哈希函数计算,然后返回K个已经计算出的hash值;2.这这K个hash值映射到对应            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 15:23:14
                            
                                37阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详解 基本概念如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数据结构都是这种思路. 但是随着集合中元素的增加,我们需要的存储空间            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-08 22:49:51
                            
                                122阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上次说了redis穿透的问题,现在我们来解决一下吧,首先redis穿透是因为一个key在redis中未查询到,而频繁查询mysql导致mysql崩溃的问题。解决方案一是可以在未查询到的redis中添加一个空的key但这种做法还是不太妥当,解决方案二使用集合存储进行判断该key是否存在,而不是频繁查询mysql导致mysql崩溃,在使用map集合时,我们得想到map集合如果存储的数据量过多占用的资源            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-30 19:05:03
                            
                                65阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            布隆过滤器概念及其公式推导布隆过滤器概念数据如何存入布隆过滤器误判情况实际应用面试题公式推导误判概率即失误率的证明和计算其他使用场景布隆过滤器概念数据如何存入布隆过滤器布隆过滤器是由一个很长的二进制矢量和一系列哈希函数组成的。二进制矢量本质是一个位数组:数组的每个元素都只占1bit空间,并且每个元素只能为0或1。布隆过滤器还拥有k个哈希函数,当一个元素加入布隆过滤器中的时候,会使用k个哈希函数对其            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-25 20:26:33
                            
                                57阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录 一、概述二、详解三、实现四、适用业务场景一、概述简单讲布隆过滤器就是判断一个列表中是否存在某个元素。一般在JAVA判断是否存在,我们可以Map,Set等容器。但是当数据量特别大的时候,用Map和Set会占用过多的内存。这个时候就会考虑用布隆过滤器了。二、详解要创建一个布隆过滤器首选需要在内存中声明一个Bit数组,假设数组的长度为L,初始值全部为0。    &nb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-28 12:24:55
                            
                                53阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一种节省空间的概率数据结构布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率。当布隆过滤器说某个值存在时,这个值可能不存在;当它说不存在时,那就肯定不存在。打个比方,当它说不认识你时,肯定就不认识;当它说见过你时,可能            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-27 10:28:36
                            
                                81阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            布隆过滤器一般用来判断一个数据是否在一个很大的数据集合里面。当然可以用数组,集合,树等数据结构和各种查找法都可以做同样的事情,但是布隆过滤器有更好的时间效率和空间效率。比特币实现SPV节点时使用了布隆过滤器来查询交易。布隆过滤器可以判断一个数在不在集合里,但存在一定的误判率。布隆过滤器的核心是一个超大的位数组和几个哈希函数。假设位数组的长度为m,哈希函数的个数为k。  &nbs            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-10 12:57:26
                            
                                73阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、什么是布隆过滤器?布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 二、布隆过滤器的使用场景网页爬虫对URL的去重,避免爬取相同的URL地址;反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-21 16:04:58
                            
                                80阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            简介:布隆过滤器是一种实现去重的思想,不属于redis,它也可以在其他地方单独使用。布隆过滤器也是做去重的,那和Hyperloglog有什么区别.Hyperloglog用来来估值,有偏差,它里面主要提供了两个方法:pfaddpfcount       但是没有判断是否包含的命令,例如pfexist,pfcontains这样的命令。举个例子:在刷进入头条的时候            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-29 12:52:14
                            
                                144阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            算法(3)---布隆过滤器原理 
  
 开发一个电商项目,因为数据量一直在增加(已达亿级),所以需要重构之前开发好的秒杀功能,为了更好的支持高并发,在验证用户是否重复购买的环节,就考虑用布隆过滤器。也顺便更加深入的去了解下布隆过滤器的原理,感觉还是蛮有意思的,这一连串的公式不静下心来思考,很容易被绕晕。 一、概述1、什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-12 22:29:13
                            
                                40阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            为什么需要布隆过滤器想象一下遇到下面的场景你会如何处理:手机号是否重复注册用户是否参与过某秒杀活动伪造请求大量 id 查询不存在的记录,此时缓存未命中,如何避免缓存穿透针对以上问题常规做法是:查询数据库,数据库硬扛,如果压力并不大可以使用此方法,保持简单即可。改进做法:用 list/set/tree 维护一个元素集合,判断元素是否在集合内,时间复杂度或空间复杂度会比较高。如果是微服务的话可以用 r            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-23 21:09:19
                            
                                239阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、什么是布隆过滤器布隆过滤器(Bloom Filter)是一个很长的二进制向量和一系列随机映射函数。它是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效的插入和查询,可以用于检索一个元素是否在一个集合中。优点:相比于传统的list、set、map等数据结构,它更高效、占用空间更少。 缺点:返回的结果是概率性(存在误差),不是确切的。二            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-28 22:23:52
                            
                                1281阅读
                            
                                                                             
                 
                
                                
                    