色综合电影网,欧美男人天堂,成人直播视频,白浆视频在线观看

不了解布隆過(guò)濾器(詳解布隆過(guò)濾器的原理、使用場(chǎng)景和注意事項(xiàng))

本文主要介紹我不 不知道布隆過(guò)濾器(詳細(xì)解釋布隆過(guò)濾器的原理、使用場(chǎng)景和注意事項(xiàng)),下面一起看看我不 不知道布隆過(guò)濾器(詳細(xì)解釋布隆過(guò)濾器的原理、使用場(chǎng)景和注意事項(xiàng))相關(guān)資訊。
應(yīng)用場(chǎng)景:
在文字處理軟件中,需要檢查一個(gè)英文單詞在fbi中的拼寫(xiě)是否正確,是否有嫌疑 的名字已經(jīng)在嫌疑名單中,是否在網(wǎng)絡(luò)爬蟲(chóng)中訪問(wèn)過(guò)某個(gè)網(wǎng)站,是否有郵箱垃圾郵件過(guò)濾功能網(wǎng)絡(luò)1。番石榴-bloomfilter。
2.分布式場(chǎng)景:自定義bloom filter hashcode redis getbit
原則:
bloom filter cache,緩存,比如redis和hashmap,在內(nèi)存中存儲(chǔ)數(shù)據(jù)。緩存和過(guò)濾器具有相同的效果。這兩者是互補(bǔ)的。
原理:與hashmap將元素映射到特定的鏈表不同,filter將元素分散到一個(gè)二進(jìn)制向量中。
底層:使用一個(gè)長(zhǎng)二進(jìn)制向量和一個(gè)映射函數(shù)。
注意:檢索一個(gè)元素,如果檢索結(jié)果是該元素不在集合中,那么一定是正確的(表示不在)。如果檢索結(jié)果是元素在集合中,那么有一定概率判斷是錯(cuò)誤的(或者不在集合中)
優(yōu)點(diǎn):空間效率和查詢(xún)時(shí)間遠(yuǎn)超一般算法。
缺點(diǎn):有一定的誤識(shí)率,刪除困難。
判斷錯(cuò)誤:b實(shí)際不存在,但判斷結(jié)果是存在:映射錯(cuò)誤。
特點(diǎn):判斷不存在肯定是對(duì)的,判斷存在也可能是錯(cuò)的。
如果你判斷 真實(shí)存在 ?去數(shù)據(jù)庫(kù)進(jìn)一步確認(rèn)。
bloom filter使用場(chǎng)景:前面過(guò)濾一次,過(guò)濾掉不存在的元素(不存在意味著不存在),所以你不 不需要去數(shù)據(jù)庫(kù)查詢(xún)。
但它和cache是一樣的,后面必須跟一個(gè)真實(shí)的數(shù)據(jù)存儲(chǔ)系統(tǒng)(db,file)。
前面是預(yù)處理模塊,后面是數(shù)據(jù)權(quán)限。
番石榴[bloomfilter]使用簡(jiǎn)單
番石榴依賴(lài):
依賴(lài)關(guān)系groupidcom.google.guava/groupid工件id guava/工件id版本19.0/version/依賴(lài)關(guān)系調(diào)整參數(shù)fpp:手動(dòng)設(shè)置錯(cuò)誤率為0.0001 //億待處理數(shù)據(jù),使用大小為64mb的位圖bloomfilterstringfloom filter = bloomfilter . create(funnels . string漏斗(charset.defaultcharset),size,0.0001);//1%,有個(gè)概率問(wèn)題,bloom越大,職業(yè)越多。空間越大,但錯(cuò)誤概率降低bloom filter bloom filter = bloom filter。創(chuàng)建(漏斗。字符串漏斗(字符集。defaultchars測(cè)試計(jì)劃:將100w數(shù)據(jù)放入bloom來(lái)判斷 不存在 100w元素和 存在 100w個(gè)元素不存在的概率。
@ test public void mmm{ int size = 1000 _ 000;//默認(rèn)fpp 0.03 bloom filterstringfloom filter = bloom filter . create(funnels . string funnel(charset . default charset),size);/for(int i = 0;i尺寸;i){ bloom filter . put(i );}//確定現(xiàn)有元素for(int i = 0;i尺寸;i){ boolean exist = bloom filter . might contain(i );如果(!存在){//如果確定不存在,那就一定不存在。system . out . println( 找到漏網(wǎng)之魚(yú)了!!! i);//此語(yǔ)句不執(zhí)行} }//不存在的元素確定為int error = 0;for(int i = size;i尺寸* 2;i){ boolean exist = bloom filter . might contain(i );if (exist) {//如果確定存在,也可能不存在。錯(cuò)誤;//system . out . println( 哦,吼~判斷失誤!!! i);} } system . out . println( 誤判率: (錯(cuò)誤* 1.0)/大小);// 0.030094}
分布式定制:hashcode redis
//自定義一個(gè)bloom filter公共靜態(tài)類(lèi)my bloom filter {//定義位圖的大小,一般需要定義為整數(shù)冪私有整數(shù)上限為2;public mybloomfilter(整數(shù)cap){ this . cap = cap;}//實(shí)現(xiàn)一個(gè)哈希函數(shù)public long hash code (string value,integer seed){ long result = 0l;for(int i = 0;i value . length;i){ result = result * seed value . charat(i);}返回結(jié)果(cap-1);}}將位圖放入reids
redis getbit命令用于獲取鍵存儲(chǔ)的字符串值的指定偏移量處的位。
jedis =新jedis( 本地主機(jī) , 6379);mybloomfilter = new mybloomfilter(129);//要處理1億個(gè)數(shù)據(jù),使用大小為64mb // 1的位圖。取當(dāng)前userid longuserid = elements。迭代器。下一個(gè)。get userid;// 2.計(jì)算位圖中的偏移量long offset = mybloomfilter . hashcode(userid . tostring,61);// 3.使用redis的getbit命令判斷對(duì)應(yīng)位置boolean isexist = jedis的值。get bit(位圖鍵,偏移量);如果(!isexist ){ //如果不存在,設(shè)置1 jedis。對(duì)應(yīng)位圖位置的setbit(位圖關(guān)鍵字,偏移量,true);//更新redis中保存的計(jì)數(shù)值long uvcount = 0l//初始計(jì)數(shù)值字符串uvcountstring = jedis . hget(counthashname,count key);if( uvcountstring!= null! 。equals(uvcountstring))uv count = long . value of(uvcountstring);jedis.hset(counthashname,countkey,string . value of(uv count 1));out.collect(新頁(yè)面視圖計(jì)數(shù)( 紫外線 ,windowend,uv count 1));}
標(biāo)簽:
元素不存在
了解更多我不 不知道布隆過(guò)濾器(詳細(xì)解釋布隆過(guò)濾器的原理、使用場(chǎng)景和注意事項(xiàng))相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。

蘋(píng)果平板充電快耗電也快是怎么啦(蘋(píng)果平板充電好慢啊)
金士頓和三星固態(tài)硬盤(pán)怎么選擇
蘋(píng)果手機(jī)的網(wǎng)關(guān)怎么看(蘋(píng)果電腦默認(rèn)網(wǎng)關(guān)在哪里)
電腦輸入最佳預(yù)設(shè)值并開(kāi)機(jī)是什么意思(輸入最佳預(yù)設(shè)并開(kāi)機(jī))
手機(jī)相冊(cè)下載免費(fèi)版,下載相冊(cè)到手機(jī)
不了解布隆過(guò)濾器(詳解布隆過(guò)濾器的原理、使用場(chǎng)景和注意事項(xiàng))
ss游戲rpg,找一個(gè)很久以前的RPG游戲
怎么找到手機(jī)里的垃圾文件,如何調(diào)出手機(jī)中的垃圾回收站
qq中屏蔽對(duì)方消息對(duì)方知道嗎(微信朋友圈屏蔽對(duì)方消息對(duì)方知道嗎)
手機(jī)一直發(fā)燙且耗電快怎么回事(手機(jī)一直發(fā)燙且耗電快怎么辦)
西數(shù)移動(dòng)硬盤(pán)修理
筆記本電腦硬盤(pán)固態(tài)和機(jī)械的區(qū)別,聯(lián)想筆記本電腦硬盤(pán)是固態(tài)還是機(jī)械
2016020是小米幾(2016111是小米幾)
微信怎么在朋友圈地址,微信怎么設(shè)置朋友圈地理位置
華碩win7系統(tǒng)恢復(fù)出廠設(shè)置詳細(xì)步驟教程圖(華碩win7系統(tǒng)怎么恢復(fù)出廠設(shè)置)
redmi note7支持nfc功能嗎(紅米note7可以刷門(mén)禁卡嗎)
螢石云攝像頭app下載安裝,螢石監(jiān)控手機(jī)安裝方法
word軟件出問(wèn)題了怎么恢復(fù)(word疑難問(wèn)題)
電腦在線咨詢(xún),電腦問(wèn)題在線咨詢(xún)
三星是安卓機(jī)嗎(三星屬于安卓嘛)
主站蜘蛛池模板: 和龙市| 马公市| 桐庐县| 霍林郭勒市| 武平县| 左权县| 平阴县| 冷水江市| 通化市| 厦门市| 肃北| 陈巴尔虎旗| 阜阳市| 通化县| 江口县| 重庆市| 大丰市| 石河子市| 武陟县| 宜城市| 涟水县| 临沂市| 嘉定区| 韶关市| 宁德市| 德庆县| 崇仁县| 南阳市| 胶南市| 濉溪县| 巨鹿县| 山阳县| 来宾市| 巩义市| 基隆市| 益阳市| 北票市| 乐安县| 香格里拉县| 商丘市| 江达县|