91精品国产自产在线观看永久_香蕉久久一区二区不卡无毒影院_91视频国产精品_日韩成人高清在线_久久久久久久久久久久久女国产乱 _亚洲欧美日韩国产一区二区三区_99久久精品免费看_亚洲影视九九影院在线观看_久久精品国产亚洲_成人a级免费视频

首頁 > 綜合 > 正文

天天新消息丨布隆過濾器在短視頻 feeds 系統中的妙用

2023-03-12 03:12:47來源:騰訊云  

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


【資料圖】

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

方案一 :Set

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

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

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

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

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

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

那有沒有更優惠的實現方案呢?這就要說到本文的主角,布隆過濾器了。

方案二:Bloom Filter

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

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

布隆過濾器介紹

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

bloom filter

簡單說下它的使用:

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

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

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

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

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

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

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

誤判率計算公式

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

布隆過濾器實現曝光打擊

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

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

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

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

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

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

bloom filter 規格

進一步優化

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

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

怎么優化呢?有幾種思路。

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

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

分級 BF

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

標簽:

相關閱讀

精彩推薦

相關詞

推薦閱讀

91精品国产自产在线观看永久_香蕉久久一区二区不卡无毒影院_91视频国产精品_日韩成人高清在线_久久久久久久久久久久久女国产乱 _亚洲欧美日韩国产一区二区三区_99久久精品免费看_亚洲影视九九影院在线观看_久久精品国产亚洲_成人a级免费视频
91美女福利视频| 亚洲免费av观看| 亚洲免费观看高清完整版在线观看熊 | 国产一区二区看久久| 91女神在线视频| 亚洲成人黄色小说| 亚洲地区一二三色| 日韩精品91亚洲二区在线观看| 天天影视色香欲综合网老头| 岛国一区二区三区| 色综合久久综合| 亚洲精品一区二区三区影院| 久久精品人人做| 国产精品福利一区二区三区| 午夜日韩在线观看| 美女在线一区二区| 欧美日韩免费一区二区三区| 成人免费毛片嘿嘿连载视频| 午夜精品福利一区二区三区av | 18欧美亚洲精品| 韩国精品在线观看| 91麻豆国产自产在线观看| 日韩一级片在线播放| 国产欧美精品日韩区二区麻豆天美| 久久国产精品99久久人人澡| av高清不卡在线| 国产精品成人免费| 国产91丝袜在线播放九色| 美国三级日本三级久久99| 在线视频你懂得一区二区三区| 717成人午夜免费福利电影| 亚洲成人免费影院| 日本高清不卡一区| 日韩黄色片在线观看| 欧美日韩视频在线观看一区二区三区 | 91视频一区二区三区| 亚洲国产精品麻豆| 精品理论电影在线观看 | 亚洲国产精品成人久久综合一区| 91麻豆精东视频| 成人激情小说网站| 日本欧美在线观看| 欧美精品一区二区高清在线观看| 日韩亚洲欧美在线观看| 一区二区三区欧美亚洲| 欧美视频日韩视频在线观看| 一区二区三区四区蜜桃| 欧美丝袜第三区| 久久精品国产99国产| 欧美国产精品v| 在线影院国内精品| 99国产精品久久久| 免费成人在线网站| 欧美一区二区三区在线看| 成人app网站| 国内精品写真在线观看| 亚洲精品午夜久久久| 国产性色一区二区| 久久精品人人爽人人爽| 4hu四虎永久在线影院成人| 91福利资源站| 欧美性xxxxxxxx| 欧美在线短视频| 欧美色综合网站| 亚洲综合久久av| 青青草国产精品97视觉盛宴| 丁香六月综合激情| 欧美日韩免费在线视频| 国产亚洲一本大道中文在线| 亚洲综合丝袜美腿| 国产一区二区视频在线播放| 午夜免费欧美电影| 91麻豆免费观看| 国产精品久久久久久久久果冻传媒 | 中文字幕一区免费在线观看| 99国产一区二区三精品乱码| 成人黄色在线视频| 在线精品视频免费观看| 久久国内精品视频| 国产91在线观看| 91.com在线观看| 欧美激情综合五月色丁香小说| 国产精品天干天干在线综合| 欧美一级二级在线观看| 久久久久97国产精华液好用吗| 奇米一区二区三区| 国产黄人亚洲片| 欧美日本国产视频| 一区二区三区四区蜜桃| 精品一区精品二区高清| 欧美伊人精品成人久久综合97| www.欧美日韩| 亚洲国产一区二区视频| 欧美亚洲愉拍一区二区| 亚洲精品日产精品乱码不卡| 成人激情小说网站| 日本一区二区久久| 成人精品高清在线| 成人中文字幕电影| 欧美一级在线视频| 蜜臀久久99精品久久久久宅男| 日韩欧美色电影| 免费成人在线观看| 亚洲视频在线观看一区| 色综合色综合色综合| 亚洲伊人色欲综合网| 精品少妇一区二区三区在线播放| 日韩一卡二卡三卡四卡| 青草国产精品久久久久久| 成人午夜av影视| 亚洲欧洲三级电影| 国产一区 二区 三区一级| 亚洲综合av网| 欧美二区三区的天堂| 美女一区二区视频| 欧美高清hd18日本| 色婷婷综合视频在线观看| 亚洲线精品一区二区三区八戒| 国内精品第一页| 亚洲一区av在线| 欧美丰满美乳xxx高潮www| 91在线免费看| 99久久99久久综合| 国产成人一级电影| 久久成人麻豆午夜电影| 久久精品人人做人人爽人人| 亚洲一区视频在线| 91网站黄www| 成人的网站免费观看| 国产激情一区二区三区四区| 日本成人在线不卡视频| 91福利在线看| 亚洲一区在线观看免费观看电影高清| 欧美国产日本韩| 最新欧美精品一区二区三区| 国产精品传媒视频| 自拍偷拍亚洲激情| 精品国产网站在线观看| 91丨porny丨最新| a亚洲天堂av| 欧美日韩视频专区在线播放| 51精品视频一区二区三区| 久久夜色精品一区| 国产肉丝袜一区二区| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲高清免费观看| 亚洲精品日韩一| 午夜成人在线视频| 成人一区二区三区在线观看| 国产一区二区三区在线观看免费| 91在线精品一区二区| 久久久精品国产免费观看同学| 国产精品天干天干在观线| 制服丝袜亚洲网站| 精品久久久久久久久久久久久久久| 一区二区在线看| 懂色av中文一区二区三区| 欧美色综合网站| 亚洲精品国产高清久久伦理二区| 免费看黄色91| 日韩欧美www| 美腿丝袜在线亚洲一区| 欧美大片在线观看一区二区| 国产精品久久久久久久岛一牛影视| 久久精品国产一区二区三区免费看| 欧美绝品在线观看成人午夜影视| 亚洲欧美另类小说视频| 欧美专区日韩专区| 美国毛片一区二区| 狠狠色丁香久久婷婷综| 日韩欧美一级二级| 国产一区二区福利| 亚洲一区影音先锋| 成人爽a毛片一区二区免费| ㊣最新国产の精品bt伙计久久| 欧美午夜精品一区二区三区| 欧美zozozo| 欧美日本一区二区三区四区| 五月综合激情日本mⅴ| 99这里都是精品| 五月天一区二区| 国产精品久久久久久久久快鸭 | 国产综合成人久久大片91| 一区二区三区在线不卡| 亚洲午夜精品久久久久久久久| 欧美亚洲一区二区在线观看| 国产尤物一区二区在线| 亚洲一区二区三区美女| 成人综合在线观看| 精品国精品国产| 国产成人av自拍| 麻豆精品在线观看| 精品国产乱码久久久久久浪潮| 欧美中文一区二区三区| 99re亚洲国产精品| 亚洲综合图片区| 欧美一区二区在线看| 成人av中文字幕| 91久久精品午夜一区二区| 678五月天丁香亚洲综合网|