00:00
各位同学大家好,接下来我们继续为大家介绍因恶意攻击导致red缓存穿透发生以后如何规避和解决的第二套解决方案,那么也就是我们的谷歌版的瓜瓦布隆过滤器,好,那通过前面我们已经明白了。两套方案一般在大厂用啊,第一种不用多说,这样不能过滤器的方案干嘛你呢,觉得别人都不好,你们也有那个研发实力自研对吧?第二种呢,那么也就是成熟大厂开源的中间件或者是什么解决方案,这么说能跟上好了,那么接下来讲过的绝不讲第二遍,不浪费大家时间,那么接下来新内容给大家进行介绍,什么是谷歌的。布隆过滤器,也就是我们用过的刮va。同学们。谷歌呢,它推出了一个算是一个架包啊,一大堆工具的合集,叫瓜网,它里面呢,就自带的一个东西叫布隆过滤器,它在现实当中实现呢,比较权威啊,这个呢,很多大厂也在用,他们内部呢,要想自研的就用自己自研的,那比如说像这个新浪和网易,那不想自研的,那这时候有些部门呢,有些项目组呢,实际项目当中呢,他们直接呢就用官网好了,那么首先官网的不容过滤器它的源码,那么有兴趣的同学可以看一下,那么在这。
01:29
OK。那么就这些东懂,那么当然如果像这样硬看没有任何意义,听懂了吗?但你不要看的多啊,它主要是注释写的比较详细,其实就是一大堆方法,那么接下来咱们实际项目当中给同学们用一下,然后再看一下它到底讲的是些什么东东,那么接下来我们就来搞定一个所谓的白名单过滤器,也即如何用不能过滤器,防止缓存串透。好了,先说一下我们的价格。
02:00
客户端访问对吧?查询这个T不能过滤器,当然这个时候呢,是我们的用谷歌开源的刮网版的,不存在直接回去,但是如果存在呢,有是极大可能有,那么red如果存在跟不能过滤器是匹配的,不能过滤器已经预先预热过,加载过,把合法数据弄过来了,那么这个时候它这有大概率有过去,那么最终如果说出现了误判没有,那么去找有数据更新red反馈结果,OK,这个时候的话呢,那么弟兄们,我们这个不能过滤器充当了一个什么白名单的角色,对吧?好了,那么下面我们来说一下这个误判问题。概率小是可以接受的啊,比如说啊,我们现在这个判断率正确率啊,或者叫误判率,也就正确率是99%,那么它的误判率,那么可能也就是什么1%对不对,100次里面99次都正确,或者98次里面都正确,那么这个时候OK,那么第二个说了,不能过滤器也存在哈希冲突,尽量不要删除,那么下面全部合法的key都需要放入到JA瓦版的布过滤器里面和red里面,不然这个数据返回就是nu了,那么你没法访问,直接返回个那对吧?好了,那么接下来理论说明白了,扣的实战。
03:18
来还是我们这个就改这个工程。键末的改泡沫,写压沫主启动叶类,我们弟兄们非常熟练了啊,首先改泡沫就一块。刮网是谷歌开源的,嘎瓦中的自带这个不容过滤器,就把红色这一段一粘就行了,那么同学们我呢,节约时间啊,这些配置类的提前给大家呢装好,尽量呢减轻大家学习和看视频的时间好了。第二个要么没什么变动,主启动没什么变道,OK,那么接下来干嘛也无泪首先弟兄们。我们新建一个测试案例,Hello world级别的入门来体验一把这个。
04:04
瓜娃版的布隆过滤器是什么?该怎么用好?那么先写个helloard级别的入门程序,那接下来各位同学我就先写好一个测试类,好吧,那么创建一个刮瓦版的波动过滤器,这是谷歌给大家写好的啊,可以直接用,那非常方便同学们怎么用呢?第一步一步一步的啊,老规矩,同学们提前建好的,我们就。节约大家时间,重要的业务逻辑我们首写来,那么首先呢是创建刮瓦板布隆过滤器来吧,那么它用的是lo f,请看谷歌的OK,然后呢,布隆过滤器里面干什么呢?它有个东西叫create,那么大家请看。Final这什么意思啊,漏斗的意思,漏斗这个英语呢,是漏斗的意思呢,是不是代表一种过滤的意思啊,对吧,有int,你看希望的一种什么插入率对吧?然后有什么这个double FPP,换句话说这个就代表什么样本数据,听懂了吧,那么也就是说你现在这个波轮过滤器里面,你先要给我灌进来的合法数据是多少?哎,比如说现在我们就说100好吧,或者十条,那么接下来这个double f PP是什么呢?我们待会聊,那么下面呢。
05:28
先学简单的hello word级别嘛,那么这个时候弄到这,然后呢,漏斗final点二,你看它有这么些几个inte整形的,Long型的,字串型的,一般无非就说因为你的这个T啊,假设我们按照规范,假设我们set user,那比如说用户ID23233,假设它是用户ID,你说这个是K的前缀,这个是K的什么。
06:01
数字,所以一般我们在用的时候,它就意思就是说,哥哥咱们来说难听一点,不是数字型就是俊型,这三个是用的最多的,好吧,那么接下来呢,假设我们这个用户ID是3233,这个肯定是in特型,对不对,那么好了,我们这儿就告诉你,我们要过滤的是一个类int型的,然后呢,我们的样本案例呢,假设我就写个100弟兄们,这个没有任何问题吧,OK,意思就是说我现在这个波能过滤器初始化。有点像你了一个阿瑞斯的数组一样,那么呢,阿斯的数组底层是不是就是。一个我不借这个类型的数组,那么初始值人家默认是16,那么我现在默认就是什么100 OK好了,那么这是我们的第一个,那么第二个啊,最土的方法我们就先默认了以后那么来吧,我们呢,判断什么鬼?指定的元素是否存在,OK,那不用多说啊,我现在只是个空壳对不对,那弟兄们,我100%是不是没有任何东西存在过呀,对吧,那么这个时候呢,我们的普通过滤器啊。
07:19
名字就就这个了,来吧,我现在是是不是只是申请了100个空间初始化里面什么都没装吧,你来吧,不能过滤器点二,然后呢,这这个方法尝试着来判断。是否含有一这么一个元素啊,那么弟兄们你晓得的,我现在有没有往这个波轮过滤器里面装过一这个元元素啊,这个整数啊,没有吧,那么再来判断一下有没有二这个元素啊,肯定没有吧,所以说第一次我们来执行,弟兄们一说就应该明白啥意思啊,是不是出现应该是两个负,负就说明什么,这个波轮过滤器里面根本就没有,没有人给我做过初始化,对吧?那么下面来空一行,那么第三一个干什么呢?就是加元素。
08:12
新增进入不容过滤器,OK,好了,同学们一句话,我用谷歌的挂网先拗一个不容过滤器,你把它当做一个耳,当做一个容器,这个里面来点2PUT1,再来一个put啊,那现在这个数就相当于是白名单这个数,它叫合法数据,那么此时同学们我们再来一次,来弟兄们跑一下,根本没有加入的时候,你告诉我一杠二存不存在,不存在,那么现在如果我加入了白名单合法数据,那么你告诉我现在存不存在出错,出错了以后是不是才可以去我的ready访问,那么这样就按照我们的规划,是不是底单数据是买色Q白名单底单合法正确的数据,先从买色克里面导出一份给red,再导出一份给波轮过滤器,那么三者一统一告诉我。
09:12
这样的话误判率是不是很小了?OK,就是掉这么一个API的事,答案这是哈二的级别,待会我们说它的底层原理好,那么同学们哈二的级别挂板的不能过滤器,就给大家先演示到这儿。接下来我们进行第二个案例的讲解和说明,对刮瓦布隆过滤器做进一步深度的讲解,通过上面这个,嗯,我相信这个啊,以大家的基础,一看就会,一学就懂,基本上都是helloard入门级别的API调用。类似于我们的list Java集合类,我这只不过用Java进行了一个Java版的不能过滤器来进行白名单的加载,有极大可能,有没有肯定没有好,这个大家可以和我们前面自言的对比一下,首先我们来说一下两者小小的区别。算法呀,什么呢,都。
10:09
差距不大,基本上都是一样的思想,但关键他这比我们优秀的地方是在什么地方呢?来,同学们,我们一般的流程,MY是什么?底单数据最正确的唯一标准,它有了给red red有了给不能过滤器,那么来进行判断。好,我们前面自言的和这块,我们为什么要学习谷歌呢?它有个牛逼的地方的是他用非常轻量级的代码解决了复杂的问题,大家请看,从写hello word到现在你跟我讲。这个不能过滤器跟我们的register发生了耦合了吗?没有,就像Java代码一样,你有那个耳添加进来一查,有就是有,没有就是没有,OK,当然它会有误判啊,它算法是一样的,我们也有误判,两者没什么区别,关键是杨哥自言的那套的思路,算法没有任何问题,但是我这是不是要先把ready弄过来,那弄过来以后我用bit map是不是每次要跟red来进行一个交互和判断,还记不记得我们上一讲,我们在上面是不是做了一个white list customer客户白名单,哎,人家这不用我跟是解偶的,反正我在业务逻辑之前先挡着一个刮网不能过滤器来判断,如果包含有是极大可能有无是肯定无,所以在解耦性这它做的比我们好,这就是我们要学习它的特点和优势,那接下来弟兄们,我们第二种要解决一些哪些问题呢?请问。
11:43
误判率体现在哪?你千万不要觉得我给你找的任何一张图是无聊的,我相信跟你说缓存穿透你是懂的。但是下面有效的key和误判的无效key你怎么体现?就这句话,哎,任何一个不能过的器都是有误判率的,那么下面请杨哥请给我证明用代码说话来结合的微夫妇写脸CTRL了掉service啊,那么下面我们干一件狠活。
12:15
样本干他100万,就说我们在这儿说只填了你申请了100个,只用俩,那么下面我给你干成100万,然后呢,我们这么干相当于现在在我们的瓜网不能过滤式里面。白名单的合法的样本数据是100万,那么我故意查查。不在100万范围。内在100万范围外的其他10万的数据是否存在?哎,说人话的意思啊,就有点儿类似于呢,是这样啊。现在哥们儿,你给了我明明呢是合法的啊,是100万没问题吧,那么接下来啊,我呢,加一些数据10万,那么就变成了110万,那么现在呢,我呢故意要拿100万以外的数据。
13:16
去在这个里面去找找,看看你会不会发生误判,OK,简单说就是一到100是合法数据,101等于。110这个呢,是非法数据对吧?但是我拿一判断来给我验证一下它的误判率,好,那么同学们我们来来写一下这个代码,从测试内跳转到我们的controltrler,调service,节约时间,建一个controltrler,建一个service这些操作基操了,不说废话,Controltrler掉service这个呢,是斯瓦哥写好这就是一个get请求rest加个这么一个,真真正正要写的是我们的业务逻辑,OK吧,好,那么同学们来吧。先定义一个产量,所以我们的计数单位啊,很简单,怎么硬套下划线1万,OK,那第二个呢,那么同学们,我们在定义上面,OK,那么就是定义我们刮网布隆过滤器初始容量,你可以把它理解为啊,就是说就跟刚才这个一样,现在呢是100。
14:33
OK,现在我们干成多少?100万来吧。一样的,那这个时候就是110万没问题吧,到时候呢,好改变你是两百万三百万这样写个OK,那么来了。接下来就是我们最重要的一个参数,前面没有介绍过的俗称物胖率,OK。
15:02
来,那它越小,误判的个数也就越少,对吧,那么在这块的话呢,Public double f PP,那么我们就0.03好了。首先同学们写到这肯定会有疑问,为什么是0.03,你不写别的,那么再来,我们先带着问题学习,那这样的话呢,我们就请同学们思考,如果说误判力是越小越好的话,那么思考一下是否可以是。无限小,那么没有误判岂不是更好?对吧,一句话,你干脆一不做二不笑,0.01。
16:08
肯定要比0.3好,对不对?那干脆再狠一点,这么干不就完活了吗?好,带着这么一个问题,咱们先把正常流程走完,那接下来我们呢,这么干,第四个是不是要创建我们的官网不容过滤器,对吧。干脆我们把前面的那这块呢,直接呢也拷贝过来OK好了,那么这个时候波轮过滤器串在这,注意在这块以后稍微和我们之前的有点不一样。这块呢。下一次,第二个就是我们的FBP。
17:01
OK,好了,那么接下来四个定义完成了,那么步骤呢?来第一个先让我们的这个官网布隆过滤器加入100万白名单数据来吧,那么这个时候呢。很简单了,一小等于。100万。这个时候直接put,直接I,我相信大家没有任何问题,对吧,第二个。故意啊,我们故意的来演示一下这个FBP误判率和瓦的不能过滤器,那么故意。取10万个不在合法范围内的数据来进行误判率的演示。
18:21
好,那么来吧,这个呢阿,List倒是简单,十乘以1万OK吧,那么在这块我们呢,数据呢,格式呢,进行对应的统一,来了第三步,那是不是来验证O了这个。我们呢,就从。100万以外的写的很清楚,这个是1000001,然后呢。
19:01
在这块我们就干这么一活。Size加上我们这儿的。十乘1万OK吧,好了,那么现在我们得到的结论呢,就是if这个不能过滤器,点my contain,我们对应的这个I log.for给你直接打出来,被误判了。第几个被误判了,然后呢,list.add我们的这个I好。完火以后,那接下来我们这是给你整了一个10万对吧,我们最大的可能就是10万个全部误判对不对,那么现在如果说被误判呢,给我装到这个list里面好了,那么log掉in for来吧。
20:03
误判总数量。来,同学们list掉size,哎,List调size OK,好了,好,那么同学们,接下来我们就通过微服务来调用一下看看啊,100万的。合法数据,现在我故意超出10万,跟它混在一块,就是总共是110万,然后呢,来进行我们对应的判断,看看这个挂网不用过滤器,它误判率现在按照我们的是多少,来我们先启动一下我们的微服务,我先暂停一下录屏。程序启动完成,那么回到我们的哥,那么下面我们这就来演示谷歌这么一个动洞。来,已经有100万,干他一票10万以外的点一下,好,同学们请看后台出现了什么鬼。
21:02
老爷。被误判了,就是到比如说1002787的时候,这个在100万以外的会跟以前存进100万的会有冲突,OK,我们前面介绍过,不能过滤器那个,它那些算法存在哈希冲突这种可能,对吧,一系列哈希函数去找那些坑位,那么最终同学们看一下。误判的总数量是多少?3033。OK,好,那么各位亲,这个时候我们呢,就获得了我们第二个取样本,100万不在范围以内,看看它的误判率是多少,那么接下来我们就要源码分析给大家说一下这些所谓的误判率和假阳性,以及它的底层原理是怎么来的。好通过上面的程序编写,我们已经明白了我们的误判总数是多少,3033,那么接下来我们呢,简单的梳理一下,然后进行对应的刮网布能过滤器源码分析,好,同学们先看一下啊。
22:08
我们第一步这100万以内是合法的,然后呢,第二步我们故意拿100万以外的就是非法的这10万数据来跟这100万来进行对标和对比,让瓜瓦布隆过滤器来进行研判,好刚好是3033,那么下面这个FPP0.03,哎,是不是对上了?那么来同学们,我们先来看一下上一步的编码结论,首先同学们请看10万。是计划以外的,白名单以外的被误判了3033次,原始样本是100万,下面从101~110,那么大家请看3033杠,它这10万除以刚好是0.03,是不是跟我们的误判数量给对上了?OK,好,这是我们得到的第一个结论,第二个进一步的深度的分析来说一下源码。
23:05
之前我们留了两个小问题,第一个杨哥,这个FPP到底是什么?第二个误判列。它越小,误判的个数也就越少,越少,现在我是3033,能不能降成1000,降成500,或者最好没有,那么这个时候我们思考一下,0.01可不可以,0.0000000000000001可不可以,那越小误判率。越少没有误判不最好完美。那么接下来我们简单的来看一下这些东东是什么鬼,第八个圆满分析一下,顺便来说一下FPP假阳性,好,那么同学们我们呢,先打好我们的断点,因为在这啊,程序逻辑很简单,主要就是一个不能过滤器刮网的,那么create来,同学们我们这儿呢,点进来,然后呢,大家请看,说白了都是什么create方法的重载。
24:04
越复杂的东西越多,我们再点进来,好,搁到这儿来吧,那么同学们,我们呢,切换为我们的debug模式启动一下来同学们等它启动啊,因为debug稍微慢一点,好,怎么样,现在呢,Debug进来了,大家请看啊,这个FPP0.03,那杨哥么,你写死了好。我们呢,一点点往下走。好了,搁到这儿,同学们请挨个挨个的跟着杨哥来啊,这个FPP大家请看我们create它的一个方法,重载过了这请看。期望值的样本是100万FBP0.03,它用的一个策略是这个啊好,这些关系不大,往下走。
25:02
重要的来了,请看这知道为什么叫FPP了吧。第一个问题,False positive ability,那么这个是个什么东西呢?那么同学们漏眼一翻译,是不是叫假阳性概率?哎,那么假阳性是不是叫一种误判率?那么误判率我们当然希望是越少越好,没有误判是最好,所以这个是一个FBP,它是什么?俗称假阳性,也就叫误判率。那么第二个我们大家都清楚是我不管你是自研的还是用哪个中间键的打破天,它也叫一个东西,叫布隆过滤器,100%是要用一种东西叫比特位数组啊,还有哈希函数的过滤和碰撞,那这个时候这些东西体现在哪呢?那么同学们我们呢,挨个挨个往下看。走走,大家请看到这儿有一个叫numbers来多少。多少万?也即如果你的误差率误判率是0.03的话,人家准备的位是多少?7298440,好,这是第一个数据,第二个同学们蝼E啥情况?Number哈希函数几个五个听懂了吗?所以说到这儿的时候,同学们请看啊,我这儿不能过滤器,Create,我叠好,我再叠好,我再叠,一步步这么走进来的,这能跟上吧?好了,那么这个时候同学们,我们往下看,就会得到一个结论,原来我们创建一个瓜网不能过滤器。
26:40
0.03的误判率的话,人家开的比特位是7298440,哈希函数多少五个?好,我们先把第一组结论给同学们先拷贝下来,来留着,那么给他呢?跑通了,回到我们的程序,那杨哥。
27:03
这块我们要是换成0.01,它又会变成什么样呢?接下来如各位同学所愿,我们呢,先把我们的程序关闭,让它加载的时候,这个时候啊,我们加载多少0.01,听懂了吧,那么这个时候我的误判率是不是就小了,我们传过去这个好,那么同学们老规矩直接呢,再将我们的程序启动源码分析来看一下,如果换成0.01以后会有什么样的变化呢?好,这是我们的。第二种情况来,我们继续走圆码,这些就不说了,好,现在搁到这,走走走走走。走走走走好,主要是430和431这一行看好了啊,现在我们的FP线。误判率是0.01,是不是就更小了?那么这时候同学们能一眼往下走了?
28:02
什么情况位数是多少?9585058,那么这个时候是不是你误判率要越小,但是他申请的比特位数组的比特位的坑位是不是叫越多,哎,你要想。越精细,那么药的成本和资源是不是越高?那么再来看看搞到这儿函数是多少七个了,所以完完全全可以和之前的来进行一个对标和对比,如果FPP是0.03的时候,各位亲,我们会非常清晰的发现,看外730万左右函数是几个哈希函数的。解决碰撞问题的五个,那么当我们的FPP是0.01的时候,多少958万几个七个哈希函数来繁殖它的冲突,保证正态的分布均匀,所以弟兄们,我们会得到你的误判率越小,要求的精度越高,那么我需要用到的资源是不是也越多,坑位数越来越多,函数越来越多,OK,好,这是我们的第二个问题,那接下来同学们就要考考大家了啊,我继续关掉,那么接下来这那杨哥我干成这样。
29:26
行不行呢?大家思考一下,还能不能正常的启动,我靠,你这个就太过分了,对吧?杨哥这么多0000000000线好了,那么弟兄们接下来老规矩,我呢再将其启动一下,我们来看看,首先程序会不会报错,能不能正常启动,第二个能正常启动的话,它对应的误判率又是多少?好,同学们,我们继续第八个来分析。来,大家看多少次方我们就不说了,对吧,那么还是跟刚才一样,首先程序能够正常启动对不对?那么来FPP,你设成那么过分的对吧?0.00001,好了,我们来,弟兄们,我们继续往下走走,来看一下多少多少同学们爽死你了,这个时候是多少。
30:17
接近是不是?67095408个坑位,OK,你的函数是多少?47,哎,所以说你的物盘里越小资源是不是冲突越恐怖,好,我将其全部把debug走通了,那么弟兄们回到我们的控制台成功启动,那杨哥你这个能不能用呢?来我执行一下怎么样,现在是不是就时间就比较长一些,然后弟兄们请看我在后台啊。我们来执行,执行一下以后,后台几乎是不是没有打出来任何有误判率相关的任何东西了,哎,所以说你这个是肯定不会有什么误判这种情况了,OK,但是呢,数据量太大太恐怖,加载就非常慢,所以我们这儿还是改回我们的0.03,那这个时候呢,部分同学可能会说那杨哥。
31:15
你怎么知道是0.03,我能不能不写好?各位亲,Low啊,我这是不是有不能过滤去叫create,你别忘了啊。我这点create。哎,干脆直接翻源码吧,它是调用这个函数,我们直接过来,这有没有没有加FPP对应的函数呢?那么来同学们请看这是不是没有FPP的函数啊,在这如果我们只加翻了和样本,人家固定写死的函数多少0.03?听懂了吧?所以说说,如果你什么都不写,它的默认值就是0.03,请看for your information对于3%。
32:03
也就是0.03,我们通常用几个五个哈希函数来进行分布的判断,减少冲突来,弟兄们,0.03的时候默认是不是五个,大家请看是不是跟我们对上了,只不过杨哥在写编码的时候故意把这也写清楚,为了给大家解释后面精度越高占用的资源越多这回事,OK,好,那么各位同学,这个就是我们debug源码分析以后让大家清楚了,我们对应的波动过滤器,它能够出现和。远视的各种情况,那么来接下来我们最后来说一下,我们不用过滤器。首先第一步去不能过滤区里面看看有没有非法请求,那么可以过滤99%,OK,因为我们这儿大家都清楚啊,0.03 0.01,你爱设多少设多少一般啊,刚才我们也看到了0.01的话,七个函数足够了,那么说明这个正确度是可以看到过滤掉99%的非法内容,对吧?我们10万次请求里面只有3033笔单子是有误判的,那么假如说你现在改小一点,你改成0.01,它又变成多少呢?那来同学们,我们完全啊,可以再这么着看啊,刚才可能演示的时候没有出现这个0.01的,那么来弟兄们,我们把这些呢。
33:35
第八个,省得它启动的时候又跑进来,我先把它取消一下来吧,我们给我切,我们现在呢,就改成0.01啊,我们来看看他的误判率是多少。好,我们来就1%了,0.01就是啊,来吧,执行一下,好给我签。我们来来搜一眼啊,多少,如果0.01的话,误判总数量是多少?947啊,这个已经非常不错了,10万笔单子里面只有947的误判率,这个是不是还是可以接受的,对吧?所以呢,八瓦布隆过滤器一步二步干这个事,那么如果是合法的请求过滤器误判漏掉1%非法请求我们去red去找,找得到了,那么。
34:22
干嘛返回,那么如果说查询缓存失败了,那么我们的加锁那种互斥查询对不对,也说过了第三步到数据库,所以如果查询失败返回line,最后返回查询失败,并向缓存中缓存一个过期时间短的defat line那样的一种值啊,听懂,所以这个就是我们刮网不能过滤器,好处就是最牛的我们前面讲到过,拿个变量就搞定了,类似于我们哈ma的一个容器,人家没有去占用red的东器进行了解耦,所以我们在这这个呢,是一个官网不能过滤器的一个初始的工具内,以后你把你的合法数据添到这个里面,在进行业务逻辑判断的时候,就当就按照这张图,这我们的设计图找刮网不能过滤器,非法请求可以过滤到99%合法的,你再过来,那么这个时候是不是就可以保证了很少会发生缓存穿透,记住,绝对的能够避免缓存穿透,不可能你控制在1%,这个是完全足够的。
35:22
OK,好,那么同学们,这个就是我们从代码和源码来给大家分析一下我们的挂网不能过滤器,那么结合前面的我们来做一个黑名单家庭作业来进行布置,同学们请看这个是不是我们白名单,有是极大可能有,无是肯定无,有的话让你过滤过来,可以去反问我们的ready,那反向来操作,既然可以设白名单,是不是也可以设黑名单?那么同学们一定用过这样的一种案例啊,这种案例是非常在大厂通用的,比如你在抖音上。张三,这个用户已经看过的视频,你尽量不要给他重复推荐,哎,比如说你今天给他推荐1000个视频,或者是200个视频,偶尔有一两个重复的,人家是可以接受的,但是你在刷抖音的时候,天天看到了一些你重复的视频,你看过的视频,那么他这个推荐算法是不是有问题,这是第一点,第二点,比如说你知道什么大众点评啊,美团啊,饿了么,他会给你推荐一些什么?
36:27
优惠券,那假如说这个张三这个用户,诶,他平时喜欢吃肯德基麦当劳,那么这个优惠券还没有给他推荐过的话,那我能不能给他推荐第二个不要重复推荐,那么基于此,我们来看一下我们一样的可以这么干,让挂网的不能过滤器做什么反向的黑名单,使用抖音防止推荐重复视频饿了么防止推荐重复优惠券推荐过的尽量不要再推荐,那么假设啊推荐给用户,如果是已经黑名单存在,说明我这个推过了,存在不要再推荐给客户了,如果不在这个黑名单里面说明什么,客服还没看过,那么不存在黑名单,说明没客服还没看过的,推荐给他,OK,如果不存在,推荐后,以后就要更新这个不能过滤器,新增进黑名单,我推荐过给他了,就这么个意思,所以呢。
37:17
一般做抖音的话,一个用户你发疯一样的,你一天你也不可能看100万个短视频吧,那假设10万个啊,这个很小了,对不对,那好1万个吧,每你要一天24小时,你就刷多少秒嘛,对不对,十十万个视频,你一秒刷一个20万嘛,30万足够你了,同一否那么这个时候看过的那么。搁到这儿。在黑名单里面不能再重复推荐,没看过的直接不存在,没看过的推荐给用户视频,那么这个也就是我们官网不能过滤器的一种黑名单的反向操作,那么要求同学们参考我白名单的案例,做一下这个黑名单的使用,OK,好,那么各位同学缓存窗套。
38:01
谷歌瓜瓦布隆制版就给大家介绍到这儿。
我来说两句