00:00
那接下来呢,我们要用red,所以呢,我们先导入这个接的一个依赖,对吧,这个依赖呢,得得拿过来啊。啊,我们用这个je依赖啊,到时候呢,大家你就直接从我这后面拿三个就行了,写这个东西的时候,对吧?接依赖好依赖拿过来以后呢,我们诶把这个东西删一删吧,这个太多了对吧,然后呢,保留我们的DMMU,因为我们说了代码呢,在这里边写嘛,对吧?好,那在这个地方呢,我们首先不要着急啊,Red呢,我们也给它来一个这个,呃,工具类啊工具类那在这代码这啊,这是RED1代对吧,然后呢,往下翻这个接YouTube啊把它拿过来。这个就不在这写了,这个工具类不在这写了,因为你们之前呢在呃。Spark streaming里边是用过的,对吧,所以呢,就直接拿过来去用就好了啊。
01:01
直接拿过来用啊,当然呢,现在我也没法测,我没开啊,你要开了之后呢,你可以测一下这个连接是否可用,当然你里边可能要改的呢,就是这个了。就是它对吧,主机名我提示一下啊,这个主机名呢,你粘回来之后,你可能要去修改其他东西呢,跟你们在那个。Spark stream里边案例写的一样的,只不过说那个地方呢,你们写的是SC的一个代码对吧,这边呢,是换成了Java,那参数呢,还是这些啊,我们就不用聊了,对吧?好,那接下来呢,我们在这边来写这个数据,对吧,这边我们呢。先。查询。Radish。对吧,好,那如果没查到。没查到,是不是去拼接circle查询我们的Phoenix,好,那从Phoenix除去查出来之后呢,将。从。Phoenix查询到的数据。写入。
02:01
对吧,因为你要是代码能走到这儿,说明一定没有,因为有的话,我在这儿直接return走了,哎,我不会。So的,不会拼接了。能明白吧,对吧,所以你只要能走到这儿,那说明没有,没有的话,你就把数据写到red对吧?好,那么在这边我们先查询red,那不管怎么样呢,我们先要获取一个连接对吧,那就是je。点。Get jet。啊,得到这个内容对吧?啊好,那接下来呢,我们要去查这个数据,那查数据我们想啊,因为API那么多,我们要查什么数据呢,跟它类型有关系。对吧,因为不同的类型呢,我们调用的方法不太一样,那我们接下来就思考一下关于这个维度存储在它的一个类型。对吧,关于类型的问题。
03:02
存储数据对吧?存储数据好,呃,那还是一样的,我们从三个角度来考虑这个问题吧,第一,我们要存什么数据?第一个存什么数据对吧,第二个呢,呃,使用什么类型。第三件事就是red kid的一个设计,对吧。啊好,那首先存什么数据呢?那这个很简单,那当然是我们的d in,呃,然后呢,是一个Jason格式的。Str对不对。啊,是一个阶层格式的字符串,对吧,这是Y6啊,你不管用什么类型的,我VALUE6用一个string总总没有问题的,对吧?好,那接下来这个问题大家来思考一下,大家觉得我们这个应该用什么类型比较合适呢?我们现在要存这个维表数据在里边。
04:04
大家觉得我们应该用什么?多想一想啊,我们用red还要做什么事,对吧?多思考思考,结合着来想一想啊,我们应该用什么?啊,大家可以说一说,就是你说类型的时候,顺便把这个red key也说一下好吧?啊也说一下,我就不分开问了,就是诶,你说哎,假如说我要用这个list对吧,我拎key应该怎么去设计,哎,我要用这个呃,Three,我three的key应该怎么设计,我要用map,那map key怎么设计,OK吧?啊,你一定说出来。你一并来说一说好吧。
05:00
告诉我这个地方我们应该用什么数据类型比较合适?嗯。又没声音了,就一点思路都没有。就存这个数据,我们该用什么数据类型?也不知道我们现在要存这个维表数据对吧。啊,然后呢,有的条件,你你你你这个key呢,肯定逃不过他俩对吧,因为你只有他俩啊,这是参数传进来的,对吧,你不可能再搞一些其他的,你这两个里边挑一个或者两个用上。那不就是这些东西吗?对吧,想一想我们应该用什么数据类型。
06:06
大家觉得我们应该用什么数据类型?Rookie表明。Rookie。Rookie表明是什么东西啊?啊,方总说了,呃K呢,用这个表明啊,然后呢,用map结构好,那第一个啊,这个地方呢,用map结构啊,哈希吧,哈希啊,我们叫哈希。哈希结构对吧?呃,然后呢,这个key呢,用table name啊。用这个表明对吧,好,那既然哈希的话,它还有一个内部的,内部的呢,那当然是这个K就逐渐。对吧,就是我们传的这个ID啊在这儿。是不是应该就是他呀。没毛病吧啊。那还有没有什么其他的想法呢?这挺好的,对吧,那一张表呢,一个very key,然后呢,你用的是哈希,哈希的话呢,它哈希的话它是这样子的啊,它外层一个K对吧,那它里边呢,还是那个什么。
07:11
KV结构吧,还是KV结构,哎,比如说你这边呢,有一个T表,T表之后呢,诶这里边又有好多个小的。KV对吧,这个呢,假如说T2表又有很多小的。KV对吧,诶你这个T1表,假如K1对吧,然后呢,一号,呃是这个什么red me,这个红米对吧?啊什么什么东西啊这样那T2表KV2对吧,呃,大的一个品类啊,什么什么样的,诶这个感觉可以啊对吧?呃还有没有其他的大家觉得。还有没有其他的?就大家的答案都是统一的啊,我们就用这个哈希了是吧。还有没有其他的数据类型,不同的意见的有没有?
08:20
啊。有没有持这个不同意见的?没有是吧,嗯,那我就说了,其实这块呢,我们用哈希不好,用哈希不好,为什么呢,你少考虑一个点,我刚才说了,让大家呢多去。想一想对吧,多结合刚才我们所分析的内容呢,去想一想,那你是不是忽略这个事儿。咱们要设置估计时间。啊,那我问一下方总,那你觉得我们在设置过期时间的时候,是一张表整体设置一个过期时间,还是每条数据单独的设置过期时间,你告诉我是一还是二,一是表,二是单独的数据,你觉得应该是哪一个?
09:22
对了啊,就是二对吧,要要给单独的这个数据来设置这个过期时间没毛病吧?好,那你你要知道在red里边设置过期时间的时候,它是不是针对于整个red k啊,也就是如果你是哈希,它针对于外层的这个key去设置的。啊,它针对的是外层的,可以去设置的。啊好,那云总提出来了,说这个用list,然后呢K呢,表明加这个主键就是我们那个ID对吧?好,那这个我把它改成ID啊。对吧,拼接这个。ID啊,那云总你再仔细想一想啊,你这个好吗?
10:11
啊,你这个好不好。你这个有没有优化呀。为什么你既然想到这个点,你却用list呢?那你看啊,林总。你你要用list对吧,K呢是表明加这个ID,那么是不是你这个集合里边未来只有一条数据。云总,对不对,是的话给我扣一。就是你你用的是一个list,没毛病,是一个集合,对吧,但是呢,你的K是。Table name加ID,那你这个list里边不就有一条数据吗?那你为什么你既然知道这个点,你为什么会选中list呢?我直接string它不香吗?啊。我直接追他不香吗?
11:02
是不是比你的要好啊,你这一点肯定要能想明白呀。因为你拿一个集合完之后呢,存一条数据,那我倒不说直接用了,能理解吧。Build拼接吧,什什什么意思啊。啊。这触及到我的知识盲区了,这聊的好像我我不太懂。Bill的拼接是什么?啊。这个地方接着云总的聊啊,那我们既然云总想到用list,然后呢,它是table name加ID作为T对吧,那么也就是说每条数据呢,不占一个例子的,那我用肯定更好一点嘛,对吧,其实在当前这个需求里边呢,我们最好的其实就是瑞,因为刚才我们提到一个点啊,就是说呢。我们要设置这个过期时间。对吧,咱们要设置这个过期时间,那我们只最好呢,是根据当前每一条数据。
12:08
来的。对不对,我们是不是要根据当前每一条数据来呀,对吧,而不是说根据一个表来。啊,因为你一张表里边可能有热点数据,可能有冷数据。对吧,那只要有一条热数据存在,那冷数据哪怕被访问一次,它都删不掉,因为你不断的更新这个数据。对吧,啊都。不行啊,那如果说我对于每一条独立的数据去设置过期时间,那这个问题是不是就解决了对吧?所以最终呢,咱们选用的是什么?是string这种类型,且key呢,这个red key用的就是表明加。刚才的那个主线。能明白吗?对吧,所以呢,你在考虑这个问题的时候,你得多考虑一些,因为这个需求比较特殊啊,呃,我们呢。
13:01
还用到了。过期时间啊,那如果没有过期时间。反而这个哈希可能会更好一点。对吧,啊,反而哈希可能会更好一点啊,但是有了过去时间,你用哈希呢,不太合适了,因为你哈希的话,你一张表。存在一个red里边,你一张表呢,就得。整个的是同时过期对吧,或者同时不过期能明白吗?这个点就是最终呢,咱们选用的是string这种类型。嗯,O,不OKOK的扣一好吗?或者说你有疑问的,你觉得其他的。有疑问的。接着。Jason是什么意思啊?我又不太理解了,你们再说不是你red的几种数据类型是不是忘了呀?
14:02
啊。String。List。Sad。They set。对吧,They set还有什么?呃。啊,对吧,就是你你起码得从类型里边去考虑吧,你不能跟我说这个其他的数据类型啊,你你这样搞的就不太合适了啊啊,那其实他还有这个呃,Bitma对吧。啊,当然其实还有啊,当然我们后面东西呢,对大家来说可能不太常用了啊呃,还有这个地图坐标啊,这种形式的啊都有啊,但是我们比较呃,就是在学习过程当中应该介绍的是这些个数据类型吧,对吧,String list set啊当然还漏漏了一个漏了。
15:00
哈西嘛。对吧,我们是不是有这些数据类型啊,我我当时问的这个数据类型,你肯定要从从这里边调嘛。对吧,啊,是这个意思啊,你不能说嗯,其他的啊,好,那我们肯定要用这个string这个数据类型啊,看来呃,大家学的东西呢,应该都忘的差不多了。对吧,忘完了啊,问到呢,想不起来,好像是个内存数据库,应该知道,但再多一点。为什么string是针对每条数据的?因为每一个它这个是独立的呀。就每一条数据有一个唯一的ready。对吧,而我们刚才不是说这个点嘛,就是你red去设置一个估计时间来看啊,它是针对谁设计的,它是针对于这个K去设计的,对吧,那方总你的呢,你的是哈希。哈希,这个结构它外层的K,你要写到这。
16:02
对吧,你一个表明,然后呢,里边有ID12345,对吧,你要给这个东西设置过期时间,所以你每条数据呢是。共享这一张表,共享这个过节时间,而如果我用spring,我是用表明加这个拼接上一对吧,表明二表明。三那每条数据当然是独立的呀。这个现在明白了吗?方总。我类型每条数据肯定是独立的呀。对呀,String类型,我一个K只能存一条数据啊,你里边的list set,哈希z set它都是集合呀,它一个K能存多条数据啊。对吧。他一个K能存多条数据啊,那你用的哈希这种方式存,那就存多少数据,而瑞呢,只能存一条啊,对吧,你要是K相同,那不就覆盖了吗?你你对同一个K写两次不就覆盖了吗?对吧?好,那最终呢,我们就选定了用spring啊,这是ready它的一个选选型问题啊。
17:15
好,那刚才呢,我们已经知道了,我们要用string数据类型,且呢我们key呢是用表明加这个去。拼接的对吧,腰都麻了啊,你可以站着听课嘛,啊凯总。好,那我们就写一个STEM类型叫key对吧?嗯,这样啊,咱们加一个DM为表啊,加一个为表对吧,在拼接上这个table name啊在。拼接一下这个。K啊,再拼接一下这个K好吧。呃,那么接下来呢,我们就是去取数据啊,Je.get啊,然后ready key呢放进去康加杯得到一个叫杰森。
18:07
DMSSTR,当然这玩意儿呢,可能没有对吧,所以呢,得做一个判断,If,呃,它呢不等于。那。啊,如果它不等于钠。对吧,不等于闹值,那我们怎么办呢?呃,第一我们就是重置这边呢,我们叫重置这个过期时间。对吧,就是重新给它设置一个对吧,这是第一个啊呃,第二个呢,我们要最终要返回数据,但返回之前呢,因为你这就走了,所以你要把连接要归还对吧,所以这里边重置国际时间,然后呢,嗯,归还连接。啊,第三返回。为表数据。对吧,这里边做这么三件事啊,第一过去时间,那就是点X。
19:02
K呢K对吧?呃,时间呢,看一下啊,这里面用的in的类型叫second,是秒数对吧,假如说我们要存一天一天的话,那我们要24小时乘以这个,嗯,60分钟乘以60秒对吧。没毛病吧,啊,咱们就这样来做一下啊,然后呢,在这,因为我们最终呢,在这儿返回return走啊,所以Je.close把链接归还了,最后呢,返回这个维托数据return对吧,嗯,杰森。叫点。杰森str。对吧,如果它不等于,那咱们是不是做这些事,重置过际时间,归还链接,返回维度数据。对吧,好,那呃,接下来如果说他。等于到呢,没查到也就这个数据呢,第一次。对吧,第一次被这个。
20:01
去查询,那肯定是。没有了。对吧,好没有了,好呃,那接下来呢,我们就会走到下面查这个。Phoenix对吧,查Phoenix查到之后呢,我们要在这把这个数据呢,写到red啊写出去对吧,好,那这边接点。Said red key。啊,然后呢,是我们这个数据,数据呢,就是他呗,对吧。那我们可以挪出来。对吧,修改这两个叫点info对吧,好,那它呢,我们把它变成string点。To Jason。对吧,同时呢,呃,也给他设置这个国际时间,当然在设置的时候,你同时啊在这。你可以加这个参数。啊,你在这样啊。加一个set ex对吧,这里边呢,就自带这个,当然我们呢都写在外面,你都都写在外面对吧,把这个拿过来。
21:09
这个呢,不叫重置,它叫。设置。对吧。啊,它叫设置。啊,它叫设置过期时间,好,那么这个呢,我们只要写进去了,写进去之后呢,还是正常返回结果,但是不要忘了还有一件事叫归还。连接对吧?啊,那应该说N上面不是归还了吗?注意它是两个分支嘛。它是两个分支啊,我只是说没有写else而已,你要写的else,那这个他要不然走,这要不然走这是或者的关系吧,对吧,他不会说,呃,两个都走啊,是这个意思能明白吧,好,这是我们关于这个数据的。读和写对吧,Ready数据和读和写这一个这个删除操作啊删除操作呢,我们说了,我们是要放到这个DM think function这来,但是呢,我们可以把这个工具方法写在这对吧?啊工具方法写在这啊,那就public。
22:14
Static啊,还是静态的对吧,啊那对吧。VO叫delete,然后呢?对吧,哎,这是删除上面是get,这个是delete啊啊,那他要的参数呢,因为这个只涉及,所以呢,参数只要他们俩就够了。对吧,我只要他们俩。就够了。没毛病吧,好,那接下来呢,删除数据,首先第一步获取连接对吧。然后。啊,拼接这个删除数据对吧,第三个嗯。归还链接。对吧,好,那这个呢,是。
23:01
店get je。删除数据接点de对吧,然后呢,这个拼接K在这啊,直接把它拿过来就好了。对吧,呃,当然呢,我也没单独写了,我直接在这里边写一样嘛,对吧,这个都一样啊。好,那归还链接点。Close。好啊,那写到这块的时候呢,可能有同学有疑问了,哎,假如说我呢,嗯。菲enix里边来了一条数据18对吧,啊爱硅谷啊,但是呢,我没有查过。就是对这个18的硅谷呢,我们从来没有查过这个数据,也就是说我red里边呢,一直都没有这条数据,对吧?18这条数据在red里面一直不存在,好那么接下来呢,我对18做了一个修改,变成18诶大写的I的硅谷,然后呢,你不是说一修改呢,就要去删除数据吗?那你不就删除了一个不存在的这个数据吗?那我问大家这个有没有问题,在red历里边,我们就删除一个压根就不存在的数据,它有没有问题?
24:33
完了。对了啊,是根本没有问题的对吧,所以就不用参与这个事儿啊好,那这边呢,我们就写好了这个工具方法删除嘛,所以返回这是word对吧,那么把这个东西呢,添加到这儿,所以呢,我们首先第一步啊呃,在这边。要干什么事呢?要知道它是更新还是什么数据,对吧,先要取这个类型吧,对吧,获取类型啊。获取数据类型啊,那这个呢,我们来写一下。
25:04
嗯,我们看一下啊,这是我们的value。点。Get。Tap。大家倍得到一个类型对吧,得到一个类型啊,那接下来呢,如果是更新类型,那我们要删除这个外数据啊。如果。为更新数据啊,则需要删除中的。数据。啊,一定要把它删掉,你不删它可不行。对吧,好好,那我们删除数据呢,我们有。叫DMU点。Delete对吧,两个参数一个表明一个主见啊,一个表明一个主见对吧?啊,那这个表明呢。
26:01
表明。在哪?这个吧。Table。对吧,Think table,哎不是它应该是应该这个think table是非表是这个吧,对吧,Think table好,那大家写入数据呢,我可以把这个提出来啊,把它提上来。因为两个人都要用嘛,对吧,这个表明可能拿过来啊,这表明。好,那下来还有一个是不是咱们的主键呢?主键是谁啊,我们要获取ID嘛,因为维表都是ID嘛,所以从data塔里边是不是获取ID这个字段呢?对吧?所以在这data塔点get stream叫ID对吧?取出来这里面有一个点我们需要注意一下,在penli斯里边呢,它都是大写的,所以这个表明呢,我们把它to up啊把它变成大写,因为你。Phoenix呢,你正常写它是大写没有问题,但是可不行。呢,小写就是小写,大写就是大写。对吧,你不能混着来,所以呢,我们统一都用大写,统一都用大写OK吧,啊,全部用大写的方式就行了啊未来呢,我们查这个pix表也一样,在这传进去的时候呢,我们传的。
27:09
给他大写。对吧,这个表明我都传大写啊,当然你要是不做这个处理,那都是小写。也行。对吧,你传的时候就传小写。啊,传的时候传小写OK吧,这个稍微要注意一下就好了啊,那我们统一呢,就是大写呗,到时候我们就把这个表明,因为它字段名啊,本身就是大写对吧,所以呢,后来关于Phoenix呢,那都用大写,都用大写就完了,对吧,因为我们在这边呢。我给的是false,给的false的时候,当时大家还记得我们查的他就应该是什么。大写对吧,它应该就大写啊好,那这块呢就搞定啊,接下来呢,我们做一个测试,先看一看我们red此时呢,它的一个响应速度是什么样子,对吧?好,那我Phoenix这些东西呢,都是开的,那在这基础上呢,我们只需要再开一个。
28:00
就够了对吧,好,那我们就开一下啊。呃,大家这个东西还是能用的吧。啊,不能用,回过头来找分的去安装一下啊。Red so。Co。好P啊。行,没有数据啊,我现在呢,没有数据,那没问题吧,空的啊好那我们来测一下,嗯,这是之前我们测的菲hoix对吧?好来我们再运行啊,还查这条数据,因为我确定这条数据有吗?对吧。
29:00
好,那此时呢,我们再来看啊kiss心诶有数据了对吧,Get。13,上海没毛病吧,这是我们说的,里边呢,都用的是这个,呃,大写。对吧,啊,咱们用的是这个大写的方式啊,所以你看到的这个表明啊,这些东西都是大写啊,到时候那我们就传大写就好了,OK吧。好,那接下来呢,我们再走一次,你看啊。变了。兄弟们。时代变了。查的一对吧,第一个72,那有就说你有了吗?你第一次应该也是从red查呀,那这个时候它得构建连接,对吧,因为你你不像你不像我们非那个词,我把连接放在外面,那我red这个连接的连接池啊等等构建是不是放在这个里边了,在这儿去构建的吧,对吧,如果接破等等于钠去初始化连接池能能明白吧,所以我们以谁为准了。
30:15
以第二个为准吧。对吧。以第二个为准,能明白吗?这个73你不用管啊,因为他要创建这个的连接,能明白吗。能明白我在说什么吗?因为这个它不像Phoenix,如果说你你要是观测菲enix,你把这个链接放进去,你看看它时间更久。啊,它时间会更久啊,所以呢,第一次查询里边会有这个构建red连接池这个操作存在,所以呢,看上去好像比这个ready才比这个非那才慢,但实际不是的啊,它构建这个连接尺,把连接都算进去了,那已经很快了,对吧,你看你这。不算连接查第一次呢,你都一百二呢,你要算连接完了你得好几秒对吧,这是red啊,那我们以谁呢?以第二个为准,以第二个为准,因为第一个里边它的构建连接你看都是什么,都是一看见没。
31:10
那。是不是大改进了?你甚至还出现什么?出现零说明什么问题啊,啊不是说零毫秒啊,就是说它不到一毫秒,就是说整个查询不到一毫秒是不是。出现零了。甚至。很刺激啊,那我就取一个中指0.5呗,对吧,我我假如说我取一个中间,哎,又是零,你看。我就取一个0.5倍。对不对,兄弟们,你看这优化了不少吧,从这个八啊接近于十,优化到10.5了,又是十几倍啊,又是十几倍呀,对吧,你一旦这个查询速度提高了十几倍,我们整个流程序的效率是不是就提高了十几倍呀?对吧,那如果你是。
32:01
一毫秒。一秒钟呢,能处理一个1000条数据。对吧,这个就很可观了啊,你一个冰度一秒钟能处理个1000条数据。对吧,这个就不一般嘞。对吧。啊,小米小米步枪换冒蓝光的加特林了是吧?啊,这完全不一样了,所以嗯,为什么。面试官,或者说我们在聊框架的时候,喜欢聊的东西叫优化,对吧?啊,就是你做的事情呢,是很有效果的,你懂吧,啊是很有效果的,但是这一块呢,对于大厂它还不行,对吧,大厂的话嫌你这个效率还太低,一秒钟1000条,这不够看对吧?所以呢,呃,后面我们还要再进一步优化啊,但是如果你去的是一家中小型公司啊,数据量呢,没那么大,那你到这一步是不是就够了,大家告诉我。你是不是到这一步其实就已经差不多了。
33:03
能明白吧,啊,就是你加了这个缓存就已经差不多了,所以呢,你们未来在面试的时候,面试官会问一个问题啊。对不对,诶那你们这个数据量,你还搞什么旁路缓存,还还后面还有一个优化,还搞又搞一个另外一个优化用得着吗。对吧,那这种问题如果现在问到你,你觉得应该怎么答?你觉得应该怎么答这个问题?其实比较简单吧。因为我们需要考虑到公司未来的一个发展,包括。看公司档次不是啊,就是你你得考虑公司未来的发展嘛,我们希望公司发展好,我们不希望未来再再去改代码,对吧?啊考虑到未来的发展,同时呢,我们这个。
34:00
做这个。压测的时候。假如说你现在数据呢,是3000条每秒。高峰期,那你觉得你做压测,你会以3000条每秒去测吗?不会吧,你至少得double一下吧,或者五倍十倍吧,对吧,你你3000你你搞一个什么呢?哎,搞一个。1万。对吧,15000。这样去测吧,你不可能说你高峰期是3000,你就拿3000去测吧,对吧?啊,我得过压测呀,能懂这意思吧?啊,所以后续我们还要继续聊优化,但是对于一般公司来说呢,我们这个到这一步也就够了,也就够了,所以呢,呃,面试官他提出这个怀疑是合理的。啊。公司要顶得住618,六一八一般来说会独立的再去加机器,可能这个任务呢,我们要。重新跑或者什么样子的,你要提高变异度的,你要提高变异度的,如果618双11考虑到这种情况啊,你要提前准备的,你懂吧,他不是说你拿着平时的任务去做这个那。
35:10
如果说你要考虑我们整个任务能顶得住618或者双11,那你在平时是不是有大量的资源浪费?是不是?能明白吗?因为你为了能顶得住618双11,你不光软件层面要做优化,你肯定要加机器。你不是大量的资源浪费嘛,相当于。对吧,所以一般不考虑这种高峰期啊,不考虑它,它呢,我们额外的要加机器的对吧,这个时间点过了,可能把这个机器要撤掉啊,这个事情一般不做考虑啊,不在我们正常的编码范围内,能懂吧?好这块呢,我们就测完第一个对吧,还有一个我们看我们数据能不能删除呢。对吧,它能不能删呢,我们也得去测一下,诶,那比如说现在呢,里边有这个13上海这条数据,对吧,那能不能删数据很简单,我呢把Maxwell启动一下啊,来看啊。
36:10
麦克提起来对吧,然后再去起谁呢?起我们的。DM层。对吧,因为我们DMC的方式是在这里边调用的,所以呢,我要把d ABB给它提起来啊,给它提起来才可以啊。好,这边呢,会打印这个建表语句啊,好打打印完了啊,咱们就这一些没有问题啊呃,现在呢,我还是用base trademark这张表做文章啊来看现在只有这张数据,那无所谓对吧,那咱们怎么做呢?首先到我们的base trademark这张表里边呢,我给大家添加上这么一行数据,比如说添加。12。还硅谷。小写的可以吧,好,那保存保存好以后呢,如果说没有问题,我们这些都错过。
37:03
嗯,还真有问题了。这个数据我想想看啊。Maxwell。嗯。Top。啊,傻了。卡不卡没开。我光开麦克了,麦克L把数据写到这个卡夫卡,卡夫卡没开啊。那怎么行呢?ZK不用管ZK,因为我们是开的对吧。啊,所以刚才麦cel都挂掉了,因为你卡不卡没开,所以麦cel挂掉了啊,我就说为什么没有数据啊,麦L重新启动一下啊。好,这边麦克就有了啊,刚才呢是卡夫卡没开。麦掉有了,好,那接下来呢,我们重新去呃测一下啊,诶这边有一个什么数据挂掉了,因为啊这个挂掉应该是卡夫卡,卡夫卡超时了对吧,卡超时了,那没关系啊啊这个呢,我们把卡法起起来了,对吧,这个也不用关掉啊,不用关掉啊嗯,好,那接下来呢,我们重新去造一条数据,我搞个13啊13。
38:19
13是不是有了呀,搞个14吧,我重新都测一下啊,14还得硅谷OK吧,保存。保存好以后呢,那这边我们来看一下。诶,它不会重新连接吗。啊,他好像不会重新连接啊,我还以为他会重新连接的。那他卡布拉这个。好像不会重新连接。啊,重新搞一条数据测试啊,那我们搞一个18吧,我们一直举例子,举18它这个股对吧。
39:00
保存。这边呢,18就写进去了,对吧,在这边诶18呢就进来了,是一个爱的硅谷,没毛病吧,好,那此时呢,Red里边肯定没有18,因为没查过啊,那这个时候呢,比如说我去呢,查一次18啊。查18啊,但是下面呢,你改不改18其实无所谓啊,改不改18说实话无所谓啊,来运行。好,18。对吧,啊,18这个数据,呃,那么接下来呢,此时我们的里边就会有18这条数据了,没毛病吧,啊,而且呢,呃,我去get这个数据啊。是艾硅谷没毛病啊,同时呢,TTL。你看一下他这个倒计时对吧,因为我们给他设置倒计时走。371对吧,啊,369369了啊。
40:06
369提到369,大家应该挺熟悉的,对吧。好,那这就可以了是吧,有了对吧,那接下来呢,我要做什么事啊。呃,我呢,把这个改成大写的硅谷。看一看能不能被删掉,对吧,大家写的还硅谷。保存保存好以后,首先到这边来看啊,走运行是不是这个数据做了一个更新,对吧?那么接下来呢,这边你再来看get还有吗?没有这个数据了。发现没没有18了,因为已经怎么样被删掉了。对吧,那这个时候我去查这个还是查18,那么他应该是大写的硅股了,大家说是不是。他是不应该是大写的还得硅谷,没毛病吧,啊,他就应该是这个大写的,还得硅谷。
41:00
对吧,啊是这样的一个情况,那这个就符合我们的预期了,大家想是不是。对吧,诶那我们要测的东西呢,都已经测了,诶确实看到,如果说呢,你查过了历已经有了,但是呢,我数据如果维表发生了改变,改变好以后呢,发现ready数据被清掉了,你再查这个数据。诶,我要重新从Phoenix读,那这样的话,我跟这个phoeni数据是不是就保持了一致性啊,第一我们之前看到那个lookup照应是不是要好啊,Lookup照一旦你加了catchche这个缓存呢,他不会他没有人删,他没有人删对吧,因为他不知道你买S改了,我们这边呢,是自己写的代码,我告诉您,诶这边呢是一个更新。对吧,哎,这边少写了个东西啊。update.equals我怎么说把这个注释写的,然后完这没有呢,对吧?啊,那这个就是新增数据也会去删一下了啊,新增数据也会删一下,但也没关系,新增数据呢,我们在这个历肯定没有嘛,所以你删了也无所谓,对吧,这这个漏了啊,刚刚才漏了这个对吧,这个得加上这个判断就最好一点对吧?好,那这边呢,我们就整个的就。
42:14
搞定了。对吧,搞定了啊,大家呢,要去好好体会一下这个代码啊。
我来说两句