青青草原综合久久大伊人精品_国产免费av片在线观看浪潮_成在 线 人视频在线观看_9传媒在线观看免费_色噜噜狠狠色综合无码

品牌 資訊 搭配 材料 時尚 熱點 行業(yè) 首飾 玉石 行情

焦點速看:布隆過濾器在短視頻 feeds 系統(tǒng)中的妙用

2023-03-12 20:04:27 來源:騰訊云

大家平時刷抖音、視頻號、快手時,幾乎總能刷到最新的視頻。那這里是怎么實現(xiàn)的呢?

上述場景,可以簡單抽象為曝光去重,就是用戶看過的 feeds1、feeds2、feeds3 ...... 等,如何保證在用戶下次進入系統(tǒng)時不會再次出現(xiàn)呢?今天,我們就來探討下幾種實現(xiàn)方案吧。

方案一 :Set

這個方案簡單粗暴,就是每個用戶用一個集合,存儲看過的所有 feedsid。每次推薦系統(tǒng)要出新的 feeds 時,去 set 中 check 一下是否存在,如果存在的話,就過濾掉這條 feeds。


【資料圖】

一般來說,像是短視頻推薦的場景下,對 feeds 的實時性要求相對較高,一般會使用 Redis 作為曝光打擊的載體。

不了解 Redis Set 的同學可以參考下:https://redis.io/commands/set/,簡而言之就是一個字典。

這種方案的問題是,在海量用戶的場景下,1是成本會很高(像 Redis 是純內存數(shù)據(jù)庫);2是隨著 feeds 數(shù)量越來越多,set 查詢會隨之變慢(像短視頻的場景下,1晚上刷個上百條還是不成問題的)。

我們來簡單試算一下,假設國民級 App 的日活躍用戶在 3kw,每人每天平均刷 200 條視頻 feeds,每條 feeds 的 id 長度為 32B。

如果以 Redis Set 的方案來計算:3kw * 200 * 32 * 1.5(Redis 數(shù)據(jù)結構自身存儲) ~ 288G,每天需要消耗存儲 288G,1個月呢?8.6T,1年呢?103T。以騰訊云 keewiDB 的持久內存來估計 64元/GB/月,1月成本大約 55w,有錢也不能這么造啊。

那有沒有更優(yōu)惠的實現(xiàn)方案呢?這就要說到本文的主角,布隆過濾器了。

方案二:Bloom Filter

布隆過濾器,本質上是一個高階 Bitmap,最適合的場景就是海量數(shù)據(jù)的過濾了。

不了解 Bitmap 的同學可以參考 https://www.cnblogs.com/dragonsuc/p/10993938.html。

布隆過濾器介紹

布隆過濾器的結構如下圖示:

bloom filter

簡單說下它的使用:

1. 寫入:對數(shù)據(jù) data 進行 k 次 hash 運算(hash 函數(shù)可選擇,本文不具體較少),得到結果后,對 bit 數(shù)組相應位置置1。

2. 檢查:對數(shù)據(jù) data 同樣進行 k 次 hash 運算,得到結果后,檢測 bloom bit 數(shù)組中相應位置是否全為1,如全是1,則表示該 data 存在于 bloom 中;否則,表示該數(shù)據(jù)不在 bloom 中。

結合上述描述,我們可以得出如下結論:

1. bloom 中存的摘要,而不是原始數(shù)據(jù) data,所以空間占用遠遠低于 set 的占用。

2. bloom 無法刪除數(shù)據(jù),如上圖示 x、y 都對 bit 數(shù)組中 bits[2] 置1了,如果刪除 x,則 bits[2]為0,y判定時,也判定失敗了。

3. bloom 無法動態(tài)擴展大小,如上圖示,bit 數(shù)組是固定的,如果 bits 數(shù)組長度調整了,那么同樣的 x、y hash 后的 bits 索引也會發(fā)生變化。

4. bloom 存在誤判的可能,例如 x、y hash 后得到的 bits 數(shù)組索引都是 1、3、5,那么即使 bloom 中只添加了 x,當 y 來判定時,也會判定為存在。

誤判率計算公式

這里不細究它的推導過程了,感興趣的同學可以自行研究。

布隆過濾器實現(xiàn)曝光打擊

由上述布隆過濾器的特性所知:必須合理選擇 bloom 過濾器的規(guī)格,bloom bit 數(shù)組太小,則誤判率過高;bloom bit 數(shù)組太大,則過于浪費存儲。

還是以相同的條件來試算,

假設國民級 App 的日活躍用戶在 3kw,每人每天平均刷 200 條視頻 feeds,每條 feeds 的 id 長度為 32B。

如果以 Redis bloom 的方案來計算:400B * 3kw ~ 12G,相比 set 方案的 288G,節(jié)約了 96% 的存儲成本。1月可以節(jié)約 52.8w 成本,降本增效杠杠的。

當設置 bloom 容量為 200 時,每人每天1個key,可以保證當天看到不重復的 feeds,BF 規(guī)格如下:

采用 Redis Bloom 插件計算,https://redis.io/docs/stack/bloom/。

bloom filter 規(guī)格

進一步優(yōu)化

上述場景下,Bloom 大小按照 200 計算,那活躍用戶呢?總有一些高活用戶,每天會刷大幾百條視頻,這部分用戶不做特殊處理的話,體驗會非常差,后面總是看到重復的視頻。還有就是一些特殊場景,例如業(yè)務希望用戶1月內都不要看到重復的 feeds。這種,如果僅僅以每天每人作為 bloom 的 key,那么實現(xiàn)1個月內不重復,1個用戶要查詢30個 bloom,有點夸張。

Redis 雖然能抗,但假設用戶刷視頻的頻率是 10w/s,擴散后,對 Redis 的壓力就是300w/s

怎么優(yōu)化呢?有幾種思路。

1. 最簡單,讓 Redis 抗,單機扛不住,分片還扛不住嗎?分片扛不住,讀寫分離還扛不住嗎?反正肯定能抗住。

2. 記錄1個總數(shù)量的 bloom key,分級,遞增設置容量。例如起始 bf0 容量是 1000,當 bf0 滿了,新建一個 bf1,容量是 10000,bf1 滿了,再新建一個 bf2,容量是 10w。這種方案有兩個好處,1是遞進的增加 bf 容量,減少 Redis 的 key 訪問次數(shù),減輕 Redis 的壓力;2是不浪費存儲,大部分用戶都是非活躍用戶,可能看到的 feeds 量在 1w 以內,只有真正活躍的用戶才會分配 10w 以上的大 bf,精準的占用存儲。

分級 BF

至此,本文就大體結束了,后面有時間了再開一篇布谷鳥過濾器的說明,先鴿一下。

標簽:

(責任編輯:)

相關文章

焦點速看:布隆過濾器在短視頻 feeds 系統(tǒng)中的妙用

?上述場景,可以簡單抽象為曝光去重,就是用戶看過的feeds1、feeds2、feeds3 等,如何保證在用戶下次進入系統(tǒng)時不會再次出現(xiàn)呢?今天,

2023-03-12 20:04:27

qq音樂登錄設備管理在哪里

?1、打開qq音樂應用,點擊[我的]和[本地]。2、進入本地界面后,點擊右上角三點圖標,點擊【本地歌曲恢復助手】。3、進入

2023-03-12 16:45:22

一汽新車要火了!軸距近2.9米,2.0T+8AT,顏值不輸哈弗H9

?一汽新車要火了!軸距近2 9米,2 0T+8AT,顏值不輸哈弗H9隨著國內SUV市場的火爆,越來越多的品牌開始插足這個領域。而且隨著科技的發(fā)展,國產

2023-03-12 12:52:22

驚艷的玉蘭王,寧波近郊環(huán)線游,最佳線路 世界播報

?驚艷的玉蘭王,寧波近郊環(huán)線游,最佳線路

2023-03-12 09:03:52

衤字旁的字_廣字旁的字 世界今日訊

?1、筆劃漢字拼音筆劃漢字拼音

2023-03-12 03:57:11

杭州美萊醫(yī)療美容醫(yī)院有限公司_關于杭州美萊醫(yī)療美容醫(yī)院有限公司簡述

?1、杭州美萊醫(yī)療美容醫(yī)院有限公司于2014年03月21日在杭州市市場監(jiān)督管理局登記成立。2、法定代表人林兆晞,公司經(jīng)營范圍包括許可經(jīng)營項目:醫(yī)

2023-03-11 21:56:37

【世界播資訊】【財經(jīng)分析】硅谷銀行正式倒閉 美聯(lián)儲加息副作用的多米諾骨牌效應已顯現(xiàn)?

?硅谷銀行的倒下反映出美聯(lián)儲收緊貨幣政策對經(jīng)濟體中一些板塊帶來的壓力已經(jīng)達到臨界水平。

2023-03-11 17:50:29

環(huán)球時訊:卻的部首是木還是夕_卻的部首是有幾畫

?1、但是偏旁是兩幅畫。2、部首:總筆畫為。3、偏復句的肯定句中,提出與偏復句相反或不一致的動作、行為或條件,表示轉折,相

2023-03-11 14:36:20

微動態(tài)丨西部最新形勢:湖人穩(wěn)住第九距前6只差1勝場 勇士跌第7開拓者掉隊

?西部最新形勢:湖人穩(wěn)住第九距前6只差1勝場勇士跌第7開拓者掉隊,湖人,勇士,快船隊,利拉德,76人隊,波特蘭開拓者,多倫多猛龍隊,明尼蘇達森林狼隊

2023-03-11 14:10:07

03月11日07時許昌最新疫情防疫管控出入政策通知 每日熱聞

?2023年03月11日07時許昌今日疫情最新動態(tài)消息及許昌出行進出返鄉(xiāng)最新疫情防疫管控出入政策通知。本次許昌出現(xiàn)防疫政策

2023-03-11 10:12:02

玉林師院

?1、體育學院作為玉林師范學院的二級學院,辦學50多年來為全國特別是桂東南地區(qū)培養(yǎng)輸送了大批優(yōu)秀體育人才,辦學條件成熟。2

2023-03-11 09:28:47

戀母吧

?1、過去的永遠都不會再回來了,而回來的也永遠不會像過去那般美麗。2、小女找暖男,看上就打包吧。3、企 鵝聽上面。本文分享

2023-03-11 07:09:55

世界球精選!一歲半寶寶突然嘔吐怎么辦_一歲半寶寶突然嘔吐怎么解決

?1、一歲半寶寶突然嘔吐。2、需要注意的是,可能是消化不良。3、如果伴有腹瀉、腹痛、腹脹等。4、可能需要給予助消化藥物,如

2023-03-11 03:56:55

環(huán)球快消息!memory是什么意思翻譯_memory是什么意思

?1、名詞n 1 記憶;記憶力2 記憶的范圍3 留在記憶中的人(或事物);回憶4 紀念5 死后的名聲6 【生

2023-03-11 03:36:47

中國最大的汽車城,曾做過首都,火車站修了20年還沒修好_天天關注

?創(chuàng)意坊旅游帶你發(fā)現(xiàn)不一樣的中國美。以前人們的出行都是依靠馬車、自行車,汽車在生活中非常少見。但隨著人們生活水平的不斷提升,很多人結婚

2023-03-10 22:52:22

微積分 各專業(yè)通用 數(shù)學基礎研究_世界觀熱點

?1、《微積分(各專業(yè)通用)(數(shù)學基礎研究)》是中國人民大學出版社2013年9月出版的圖書。2、作者是陳余泉。本文到此

2023-03-10 19:44:08

【霸州多年朋友千元不還】債主:不想打擾其家人,快還錢_新資訊

?【霸州多年朋友千元不還】債主:不想打擾其家人,快還錢

2023-03-10 17:18:17

美原油交易策略:全球股市普遍下跌,油價延續(xù)跌勢_環(huán)球快看

?周五(3月10日)亞洲時段,美原油延續(xù)跌勢,一度創(chuàng)近兩周新低至74 93美元 桶附近,因為交易商對美聯(lián)儲頻繁和更大幅加息

2023-03-10 15:18:51

天天關注:河南發(fā)現(xiàn)春秋戰(zhàn)國之交戎人墓 墓葬及器物特點已有中原化趨勢

?3月8日,記者從在河南鄭州舉行的2022河南考古新發(fā)現(xiàn)論壇上獲悉,該省三門峽市陜州城墓地中發(fā)現(xiàn)較多夫妻并穴合葬墓及少量工

2023-03-10 12:52:24

每日看點!安東尼作家簡介_安東尼作家

?1、是兔子安東尼么?他有《這些都是你給我的愛》《陪安東尼度過漫長歲月》《橙》(陪安東尼度過漫長歲月Ⅱ)。本文到此分享完

2023-03-10 12:35:15

世界速看:福晶科技3月10日盤中漲幅達5%

?以下是福晶科技在北京時間3月10日10:49分盤口異動快照:3月10日,福晶科技盤中漲幅達5%,截至10點49分,報18 59元,成交2 74億元,換手率3 55%

2023-03-10 10:30:13

天天快訊:赫赫爸拆奧特曼卡片_赫赫

?1、赫赫hèhè中文解釋-英文翻譯赫赫的中文解釋以下結果由漢典提供詞典解釋基本解釋[impressive;maj

2023-03-10 08:59:09

佚名是誰圖片_佚名是誰-每日關注

?1、佚名就是指作者是匿名發(fā)表,或是無法知道作者是誰,等等有些人認為“佚名”是一個作家,一個非常非常了不起的作家,對他

2023-03-10 06:27:04

天天播報:如何減少咸菜的亞硝酸鹽_怎樣降低咸菜中亞硝酸鹽的含量

?1、酸洗時間在2天以內或超過20天:2、其實咸菜的亞硝酸鹽含量在腌制的2天內并不是很高,然后亞硝酸鹽含量在第3-8天達到

2023-03-10 04:46:33

陽了應該怎么辦-陽性感染者如何用藥 03月10日00時四川巴中疫情數(shù)據(jù)|全球熱頭條

?青壯年一般高燒階段不超過3天,到第4、第5天會明顯好轉。如高燒持續(xù)3天以上,且沒有緩解趨勢,建議前往醫(yī)院就診。一、03月10日00時四川巴中通

2023-03-09 23:54:08

促銷、內部價,黃牛盯上汽車代購,交易需謹慎 焦點熱文

?華夏時報(www chinatimes net cn)記者劉凱于建平北京報道有需求就會有市場,隨著汽車的普及度逐漸增高,也給無孔不入的投機者找到了新的商機

2023-03-09 20:50:52

高中生學好語文的方法及技巧_高中語文學習方法_天天報資訊

?1、高中語文學習方法指導  高中的語文學習與初中有很大不同,涉及的學習內容要增加很多。2、是學生盛宴中思維最活躍、表達能

2023-03-09 21:01:07

世界今日報丨gyta/gyts-gyts和gyta有什么區(qū)別

?1、GYTS光纜是架空或者是直埋用的光纜,GYTA光纜是架空或者是穿管道用的光纜。2、一個是可以直接埋地里,另一個是要穿管道的,理論來說是不能

2023-03-09 18:39:11

環(huán)球微速訊:今日時訊:怎么知道感染了甲流 感染了甲流怎么辦

?小伙伴們好,帶大家回顧下怎么知道感染了甲流感染了甲流怎么辦,那么小縱今天就來梳理下具體的一些信息一起來看看吧。一、怎么

2023-03-09 16:41:03

無主之地2武器代碼怎么寫進去_無主之地前傳武器代碼怎么用

?1、復制輸入就可以了你要先學會,修改器,就會用代碼了去3DM下載作弊器。2、打開人物存檔,打開人物武器界面,替換武器代碼

2023-03-09 15:16:09