全球今日报丨腾讯二面:有 40 亿个 QQ 号,限制 1G 内存,问如何去重?被问懵了!

2023-05-30 19:38:39 来源: 博客园

40亿个QQ号,限制1G内存,如何去重?

40亿个unsigned int,如果直接用内存存储的话,需要:


(资料图)

4*4000000000 /1024/1024/1024 = 14.9G,考虑到其中有一些重复的话,那1G的空间也基本上是不够用的。

想要实现这个功能,可以借助位图。

使用位图的话,一个数字只需要占用1个bit,那么40亿个数字也就是:

4000000000 * 1 /8 /1024/1024 = 476M

相比于之前的14.9G来说,大大的节省了很多空间。

比如要把我的QQ号"907607222"放到Bitmap中,就需要找到第907607222这个位置,然后把他设置成1就可以了。

这样,把40亿个数字都放到Bitmap之后,所有位置上是1的表示存在,不为1的表示不存在,相同的QQ号只需要设置一次1就可以了,那么,最终就把所有是1的数字遍历出来就行了。

什么是BitMap?有什么用?

位图(BitMap),基本思想就是用一个bit来标记元素,bit是计算机中最小的单位,也就是我们常说的计算机中的0和1,这种就是用一个位来表示的。

所谓位图,其实就是一个bit数组,即每一个位置都是一个bit,其中的取值可以是0或者1

像上面的这个位图,可以用来表示1,4,6:

如果不用位图的话,我们想要记录1,4,6 这三个整型的话,就需要用三个unsigned int,已知每个unsigned int占4个字节,那么就是3*4 = 12个字节,一个字节有8 bit,那么就是 12*8 = 96个bit。

所以,位图最大的好处就是节省空间。

位图有很多种用途,特别适合用在去重、排序等场景中,著名的布隆过滤器就是基于位图实现的。

但是位图也有着一定的限制,那就是他只能表示0和1,无法存储其他的数字。所以他只适合这种能表示ture or false的场景。

推荐一个开源免费的 Spring Boot 实战项目:

https://github.com/javastacks/spring-boot-best-practice

什么是布隆过滤器,实现原理是什么?

布隆过滤器是一种数据结构,用于快速检索一个元素是否可能存在于一个集合(bit 数组)中。

它的基本原理是利用多个哈希函数,将一个元素映射成多个位,然后将这些位设置为 1。当查询一个元素时,如果这些位都被设置为 1,则认为元素可能存在于集合中,否则肯定不存在

所以,布隆过滤器可以准确的判断一个元素是否一定不存在,但是因为哈希冲突的存在,所以他没办法判断一个元素一定存在。只能判断可能存在。

所以,布隆过滤器是存在误判的可能的,也就是当一个不存在的Hero元素,经过hash1、hash2和hash3之后,刚好和其他的值的哈希结果冲突了。那么就会被误判为存在,但是其实他并不存在。

想要降低这种误判的概率,主要的办法就是降低哈希冲突的概率及引入更多的哈希算法。

下面是布隆过滤器的工作过程:

1、初始化布隆过滤器

在初始化布隆过滤器时,需要指定集合的大小和误判率。布隆过滤器内部包含一个bit数组和多个哈希函数,每个哈希函数都会生成一个索引值。

2、添加元素到布隆过滤器

要将一个元素添加到布隆过滤器中,首先需要将该元素通过多个哈希函数生成多个索引值,然后将这些索引值对应的位设置为 1。如果这些索引值已经被设置为 1,则不需要再次设置。

3、查询元素是否存在于布隆过滤器中

要查询一个元素是否存在于布隆过滤器中,需要将该元素通过多个哈希函数生成多个索引值,并判断这些索引值对应的位是否都被设置为 1。如果这些位都被设置为 1,则认为元素可能存在于集合中,否则肯定不存在。

布隆过滤器的主要优点是可以快速判断一个元素是否属于某个集合,并且可以在空间和时间上实现较高的效率。但是,它也存在一些缺点,例如:

  1. 布隆过滤器在判断元素是否存在时,有一定的误判率。、
  2. 布隆过滤器删除元素比较困难,因为删除一个元素需要将其对应的多个位设置为 0,但这些位可能被其他元素共享。

应用场景

布隆过滤器因为他的效率非常高,所以被广泛的使用,比较典型的场景有以下几个:

1、网页爬虫:爬虫程序可以使用布隆过滤器来过滤掉已经爬取过的网页,避免重复爬取和浪费资源。

2、缓存系统:缓存系统可以使用布隆过滤器来判断一个查询是否可能存在于缓存中,从而减少查询缓存的次数,提高查询效率。布隆过滤器也经常用来解决缓存穿透的问题。

3、分布式系统:在分布式系统中,可以使用布隆过滤器来判断一个元素是否存在于分布式缓存中,避免在所有节点上进行查询,减少网络负载。

4、垃圾邮件过滤:布隆过滤器可以用于判断一个邮件地址是否在垃圾邮件列表中,从而过滤掉垃圾邮件。

5、黑名单过滤:布隆过滤器可以用于判断一个IP地址或手机号码是否在黑名单中,从而阻止恶意请求。

如何使用

Java中可以使用第三方库来实现布隆过滤器,常见的有Google Guava库和Apache Commons库以及Redis。

如Guava:

import com.google.common.hash.BloomFilter;import com.google.common.hash.Funnels;public class BloomFilterExample {    public static void main(String[] args) {        // 创建布隆过滤器,预计插入100个元素,误判率为0.01        BloomFilter bloomFilter = BloomFilter.create(Funnels.stringFunnel(), 100, 0.01);        // 插入元素        bloomFilter.put("Lynn");        bloomFilter.put("666");        bloomFilter.put("八股文");        // 判断元素是否存在        System.out.println(bloomFilter.mightContain("Lynn")); // true        System.out.println(bloomFilter.mightContain("张三"));  // false    }}

Apache Commons:

import org.apache.commons.lang3.StringUtils;import org.apache.commons.collections4.BloomFilter;import org.apache.commons.collections4.functors.HashFunctionIdentity;public class BloomFilterExample {    public static void main(String[] args) {        // 创建布隆过滤器,预计插入100个元素,误判率为0.01        BloomFilter bloomFilter = new BloomFilter<>(HashFunctionIdentity.hashFunction(StringUtils::hashCode), 100, 0.01);        // 插入元素        bloomFilter.put("Lynn");        bloomFilter.put("666");        bloomFilter.put("八股文");        // 判断元素是否存在        System.out.println(bloomFilter.mightContain("Lynn")); // true        System.out.println(bloomFilter.mightContain("张三"));  // false    }}

Redis中可以通过Bloom模块来使用,使用Redisson可以:

Config config = new Config();config.useSingleServer().setAddress("redis://127.0.0.1:6379");RedissonClient redisson = Redisson.create(config);RBloomFilter bloomFilter = redisson.getBloomFilter("myfilter");bloomFilter.tryInit(100, 0.01);bloomFilter.add("Lynn");bloomFilter.add("666");bloomFilter.add("八股文");System.out.println(bloomFilter.contains("Lynn"));System.out.println(bloomFilter.contains("张三"));redisson.shutdown();

首先创建一个RedissonClient对象,然后通过该对象获取一个RBloomFilter对象,使用tryInit方法来初始化布隆过滤器,指定了最多能添加的元素数量为100,误判率为0.01。

然后,使用add方法将元素"犬小哈"、"666"和"八股文"添加到布隆过滤器中,使用contains方法来检查元素是否存在于布隆过滤器中。

或者Jedis也可以:

Jedis jedis = new Jedis("localhost");jedis.bfCreate("myfilter", 100, 0.01);jedis.bfAdd("myfilter", "Lynn");jedis.bfAdd("myfilter", "666");jedis.bfAdd("myfilter", "八股文");System.out.println(jedis.bfExists("myfilter", "Lynn"));System.out.println(jedis.bfExists("myfilter", "张三"));jedis.close();

版权声明:本文为CSDN博主「code.song」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/songmulin/article/details/130814507

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2022最新版)

2.劲爆!Java 协程要来了。。。

3.Spring Boot 2.x 教程,太全了!

4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

标签:

全球今日报丨腾讯二面:有 40 亿个 QQ 号,限制 1G 内存,问如何去重?被问懵了!

>40亿个QQ号,限制1G内存,如何去重?40亿个unsignedint,如果直接用内存存储的话,需要:`4*4000000000 10

05-30 19:38:39

餐后两小时血糖正常值是多少范围(餐后两小时血糖正常值是多少)_当前快播

今天小编宋丹来为大家解答以上的问题。餐后两小时血糖正常值是多少范围,餐后两小时血糖正常值是多少相信很

05-30 19:06:50

交易员押注美国国会将通过债务上限协议 超短期美债收益率走低-每日看点

当地时间5月28日晚间,拜登表示,已与众议院议长麦卡锡就提高联邦政府债务上限达成最终协议,并将提交给国

05-30 18:57:17

江苏射阳:书香满城润民心-环球观天下

在江苏省盐城市射阳县,县图书馆新城区馆、“沐阳书廊”、太阳花书屋等一批阅读空间正成为城市新地标;...

05-30 19:00:21

环球速讯:基金发行入冬

近期新基金发行异常低迷,发行份额逼近8年半以来月度最低值。在业内人士看来,过往3年行业快速扩张“欠...

05-30 18:02:34

港股收盘,恒指收涨0.24%,结束四连跌,恒生科技指数收涨1.5%-当前报道

港股收盘,恒指收涨0 24%,结束四连跌,恒生科技指数收涨1 5%

05-30 17:48:14

总监笔记:科创带动科技行情!

今天的市场走势比较曲折,早盘建筑装饰一马当先,中国中车更是涨停,带动指数上攻!10点之后,形势直转急下

05-30 17:15:30

第三监管周期区域电网输电价格及有关事项通知(附原文)

国家发展改革委关于第三监管周期区域电网输电价格及有关事项的通知发改价格〔2023〕532号各省、自治区、直

05-30 16:54:01

评论1+1:反派“高启强”有没有资格得奖

5月26日,第28届白玉兰奖各奖项发布入围名单,拥有超高人气的、《狂飙》中张颂文饰演的“高启强”未获提...

05-30 16:59:33

“书香进园区”初夏草坪露营节亮相中关村壹号_当前焦点

人民网北京5月30日电(董兆瑞)上周末,海淀区图书馆(北馆)与中关村壹号联合主办的“书香进园区”初夏草坪...

05-30 16:19:14

播报:商企网络科技有限公司(商企网)

当前大家对于商企网都是颇为感兴趣的,大家都想要了解一下商企网,那么小美也是在网络上收集了一些企网的一

05-30 16:20:28

今日热搜:烈日下排队、摇中就赚2000万!“上海网红盘”后续:暂停销售摇号,可退钱

烈日下排队、摇中就赚2000万!“上海网红盘”后续:暂停销售摇号,可退钱

05-30 16:07:45

让司法救助之光,照亮困境未成年人成长之路_当前速看

本报北京5月29日电(记者乔文心)“六一”国际儿童节来临之际,最高人民法院、中华全国妇女联合会联合发...

05-30 15:25:09

快意电梯董秘回复:2022年年度权益分派的股权登记日为2023年5月22日

快意电梯(002774)05月30日在投资者关系平台上答复了投资者关心的问题。

05-30 14:56:01

天天新消息丨事关看病报销!一次搞懂“年免赔额”

莞小保,什么是免赔额?免赔额是年度累计计算的,由保险人和被保险人事先约定,并在合同中载明。在保险有效

05-30 15:02:03

猫为什么踩奶?猫咪为什么会踩奶? 世界信息

一、猫咪为什么会踩奶?幼猫踩奶其实是在按摩母猫的乳房,这样有助于促进乳房分泌乳汁。最后,并不是大多数

05-30 14:26:19

安丘经济开发区青龙湖社区服务队

1、安丘经济开发区青龙湖社区服务队是由安丘市慈善总会领导下的志愿团体。2、成立于2017年5月10日。文章到

05-30 14:15:36

嘉益股份:5月29日融券卖出800股,融资融券余额2117.67万元-今日视点

5月29日,嘉益股份(301004)融资买入139 11万元,融资偿还237 78万元,融资净卖出98 67万元,融资余额2044 38万元。

05-30 13:15:37

2023开放原子全球开源峰会将于6月11日在京开幕|世界快报

2023开放原子全球开源峰会将于6月11日在京开幕

05-30 12:56:21

海南橡胶(601118):股价成功突破年线压力位-后市看多(涨)(05-30)

资金流向数据,主力资金净流入350 72万元,占总成交额21%,其中超大单净流入314 77万元,大单净流入35

05-30 11:17:31

中信证券:特斯拉(TSLA.US)引领自动驾驶落地阶段 域控制器放量或将提速

智通财经APP获悉,中信证券(行情600030,诊股)发布研究报告称,近期,特斯拉(TSLA US)更新其FSD算法至v11 4

05-30 10:40:35

农机“体检”战“三夏”

  “作业前要先检查农机的线路,防止线路老化导致农机自燃。”5月27日,临泉县农业综合执法大队在杨桥...

05-30 09:59:24

优雅设计引领潮流,魅族20系列凭高颜值配色火爆出圈

相信很多朋友都有这种感觉,近几年来,智能手机在硬件参数上,越来越趋于同质化,而外观设计和机身工艺受到

05-30 09:20:57

当前头条:鼓励大湾区内医院共建专科联盟!广东明确今年医改重点

南方日报讯 (记者 卞德龙 陈伊纯 通讯员 粤卫信)5月29日,2023年全省卫生健康体改工作会议暨深化医改

05-30 08:45:24

保水剂类型_保水剂是什么成分简介介绍 讯息

对于保水剂是什么成分这个问题感兴趣的朋友应该很多,这个也是目前大家比较关注的问题,那么下面小好小编就

05-30 07:43:04

近期召回小合集 数量不大隐患不小

Hello大家好,欢迎收看新车消费报告,我是刘琦。受影响的车辆是在2020年至2022年期间生产的部分向美国出口

05-30 06:56:53

军民融合板块5月29日跌0.5%,航锦科技领跌,主力资金净流出16.74亿元

5月29日军民融合板块较上一交易日下跌0 5%,航锦科技领跌。当日上证指数报收于3221 45,上涨0 28%。深证成

05-30 06:15:25

世界热文:涡轮增压发动机爬陡坡有没有区别_涡轮增压发动机的汽车陡坡起

解答:1、现在涡轮发动机停机后不需要怠速冷却,ECU会根据传感器数据自动判断冷却润滑系统是立即停机还是继

05-30 05:20:51

吴若曼新任兴银基金董事长兼法定代表人 张贵云离任|全球今热点

吴若曼新任兴银基金董事长兼法定代表人张贵云离任---中国经济网北京5月29日讯近日,兴银基金管理有限责任公

05-30 04:04:56

每日热门:小学六年级女生露图

1、难道大便以后可以不擦屁股?。本文就为大家分享到这里,希望小伙伴们会喜欢。

05-30 03:36:04

怀孕前三个月可以做什么运动

2、孕妇瑜伽:孕妇瑜伽最好在正规医院的孕妇学校里做,这样比较专业,也比较安全。避免运动量过大影响胎儿

05-30 03:36:18

十八部门发文加强新时代中小学科学教育-当前热文

新华社北京5月29日电(记者杨湛菲、徐壮)记者29日从教育部获悉,教育部等十八部门近日联合印发关于加强新

05-30 01:57:54

婚前购买房婚后共同还贷怎么算 婚前购买房婚后共同还贷怎么算利息

根据我国婚姻法、婚姻法司法解释三以及相关法律法规的规定,夫妻一方在婚前购买的房屋,登记在自己名下,在

05-30 01:29:56

合肥庐城110千伏输变电工程投运 当前速看

近日,中国能建安徽电建二公司承建的合肥庐城110千伏输变电工

05-30 01:07:50

昌河福瑞达上税多少钱_低配的昌河福瑞达裸车挂排上税全险多少钱-世界滚动

解答:1、汽车购置税=。交强险车牌税估计你在量。希望通过这篇文章能帮到你,在和好朋友分享的时候,也欢迎

05-29 22:58:11

618是什么日子淘宝 618是什么日子|全球观速讯

今天来聊聊关于618是什么日子淘宝,618是什么日子的文章,现在就为大家来简单介绍下618是什么日子淘宝,618

05-29 22:23:29

浏阳城建集团拟发行7亿元中期票据 期限3年|环球热资讯

本期债券注册金额为7亿元,本期发行金额为7亿元,发行期限不超过3年(含3年),无担保。

05-29 21:54:09

世界观热点:我国积极推进三级预防措施 加强妇幼健康综合服务

央视网消息(新闻联播):国家卫生健康委近日表示,我国已形成三级预防措施与妇幼健康服务整合推进的出生缺

05-29 21:13:11

oem是什么意思啊(学而无厌什么意思)_热点评

想必现在有很多小伙伴对于学而无厌什么意思方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些

05-29 20:54:13

幼儿教育资源共享,武城职送教下乡助力乡村教育振兴

极目新闻记者张渊通讯员丁文毅“志合者,不以山海为远。”5月26日,武汉城市职业学院学前教育学院党总支...

05-29 19:45:33

看热讯:初霁是什么意思解释(初霁什么意思)

1、霁:晴初霁:长时间的小雨过后的天晴。本文到此分享完毕,希望对大家有所帮助。

05-29 19:37:48

融合创新,激发文旅消费潜能 当前速读

下大气力推动文化和旅游更广范围、更高水平深度融合,积极培育人们喜闻乐见的新产品文博看展、文化演艺、国

05-29 18:57:24

异硫氰酸胍商品报价动态(2023-05-29)

交易商品牌 产地交货地最新报价异硫氰酸胍 99%优等品上海溶和化工有限公司湖北山东省 淄博市65元 千克

05-29 16:52:41

德州最大的海鲜批发市场在哪

关于德州最大的海鲜批发市场在哪的内容,包含沧州最大海鲜批发市场在哪德州最大海鲜市场?

05-29 16:13:45

我省公布高考咨询、监督举报电话 天天信息

2023年高考在即,5月26日,黑龙江省招生考试院公布将开通两部咨询电话、一部监督举报电话,为我省涉考家庭

05-29 15:50:43

【世界播资讯】最强男神_对于最强男神简单介绍

1、《最强男神》为黑岩阅读网签约作者“黑佬湿”原创小说。2、首发、独家签约于黑岩阅读网。文章到此就...

05-29 15:05:52

翼状胬肉用什么眼药水控制_翼状胬肉滴什么眼药水 全球实时

1、翼状胬肉是结膜变性引起的结膜异常增生性疾病,通常不需要滴眼药水治疗。但在翼状胬肉的生长期,由于会

05-29 14:03:51

英伟达黄仁勋在台大毕业典礼致辞:未能充分利用人工智能的公司将会消亡-当前热讯

5月27日,英伟达公司创始人兼首席执行官黄仁勋在台大毕业典礼上发表致辞讲话,黄仁勋强调,人工智能开启了

05-29 13:24:19

订单逾千架!刚刚,C919板块起飞! 当前速看

C919首次商飞现场国产大飞机C919迎来商业化落地的“高光时刻”。5月28日10时32分,MU9191航班从上海虹桥国

05-29 13:05:44

转基因苹果实验 转基因苹果

今天来聊聊关于转基因苹果实验,转基因苹果的文章,现在就为大家来简单介绍下转基因苹果实验,转基因苹果,

05-29 11:37:15

餐后两小时血糖正常值是多少范围(餐后两小时血糖正常值是多少)_当前快播
交易员押注美国国会将通过债务上限协议 超短期美债收益率走低-每日看点
江苏射阳:书香满城润民心-环球观天下
环球速讯:基金发行入冬
港股收盘,恒指收涨0.24%,结束四连跌,恒生科技指数收涨1.5%-当前报道
总监笔记:科创带动科技行情!
第三监管周期区域电网输电价格及有关事项通知(附原文)
评论1+1:反派“高启强”有没有资格得奖
“书香进园区”初夏草坪露营节亮相中关村壹号_当前焦点
播报:商企网络科技有限公司(商企网)
今日热搜:烈日下排队、摇中就赚2000万!“上海网红盘”后续:暂停销售摇号,可退钱
让司法救助之光,照亮困境未成年人成长之路_当前速看
快意电梯董秘回复:2022年年度权益分派的股权登记日为2023年5月22日
天天新消息丨事关看病报销!一次搞懂“年免赔额”
猫为什么踩奶?猫咪为什么会踩奶? 世界信息
安丘经济开发区青龙湖社区服务队
嘉益股份:5月29日融券卖出800股,融资融券余额2117.67万元-今日视点
2023开放原子全球开源峰会将于6月11日在京开幕|世界快报
海南橡胶(601118):股价成功突破年线压力位-后市看多(涨)(05-30)
中信证券:特斯拉(TSLA.US)引领自动驾驶落地阶段 域控制器放量或将提速
农机“体检”战“三夏”
优雅设计引领潮流,魅族20系列凭高颜值配色火爆出圈
当前头条:鼓励大湾区内医院共建专科联盟!广东明确今年医改重点
保水剂类型_保水剂是什么成分简介介绍 讯息
近期召回小合集 数量不大隐患不小
军民融合板块5月29日跌0.5%,航锦科技领跌,主力资金净流出16.74亿元
世界热文:涡轮增压发动机爬陡坡有没有区别_涡轮增压发动机的汽车陡坡起
吴若曼新任兴银基金董事长兼法定代表人 张贵云离任|全球今热点
每日热门:小学六年级女生露图
怀孕前三个月可以做什么运动
十八部门发文加强新时代中小学科学教育-当前热文
婚前购买房婚后共同还贷怎么算 婚前购买房婚后共同还贷怎么算利息
合肥庐城110千伏输变电工程投运 当前速看
昌河福瑞达上税多少钱_低配的昌河福瑞达裸车挂排上税全险多少钱-世界滚动
618是什么日子淘宝 618是什么日子|全球观速讯
浏阳城建集团拟发行7亿元中期票据 期限3年|环球热资讯
世界观热点:我国积极推进三级预防措施 加强妇幼健康综合服务
oem是什么意思啊(学而无厌什么意思)_热点评
幼儿教育资源共享,武城职送教下乡助力乡村教育振兴
看热讯:初霁是什么意思解释(初霁什么意思)
融合创新,激发文旅消费潜能 当前速读
异硫氰酸胍商品报价动态(2023-05-29)
德州最大的海鲜批发市场在哪
我省公布高考咨询、监督举报电话 天天信息
【世界播资讯】最强男神_对于最强男神简单介绍
翼状胬肉用什么眼药水控制_翼状胬肉滴什么眼药水 全球实时
英伟达黄仁勋在台大毕业典礼致辞:未能充分利用人工智能的公司将会消亡-当前热讯
订单逾千架!刚刚,C919板块起飞! 当前速看
转基因苹果实验 转基因苹果
世界今日讯!金科股份盘中发布澄清公告:公司目前生产经营正常,与相关合作方未签署任何协议,相关事项仍存在不确定性
X 广告
行业动态
X 广告

Copyright ©  2015-2022 现在植物网版权所有  备案号:粤ICP备18023326号-5   联系邮箱:855 729 8@qq.com