00:00
接下来我们就想要把这个缓存给它,从我的哈杜当中的这个什么map reduce中给它挪出去,我不要放在这里,哈杜不是做这个事儿的啊,你放到这里面,你能实现我的功能,但这不是我想要的,我想要的是专门的缓存服务器,而不是你自己搭了个缓存,那我们该怎么办?我们要用到缓存服务器了,你们之前恰恰学过的叫对吗?还有印象吗?啊,我相信你们应该有是吧?啊,相信你们应该有啊,所以接下来咱们用red把这些数据缓存好,缓存好以后我们这里从red里面来取那个缓存的数据,咱们这么来做啊,所以既然是这样的话呢,我们把这个该关的就关掉了,所以我这里呢,要给他再来一个啊,咱们new创建一个项,这个项目呢,就是专门把数据库的数据给它放到red当中啊,就事先给它缓存好,就这个意思啊,所以我们这里呢,给他来,我们点击下一个啊,然后呢,写上咱们叫CT,我这里呢就叫cash,诶就叫缓存,就就专门做这个事儿,不做别的啊,所以呢,点击下一步啊,然后呢,下面写上叫CT,我们的cash啊,就专门干这一件事情啊,然后呢,点击完成好了,点击完成以。
01:23
操把这个我们准备要操作一下了,因为你的目的很简单,干嘛呢?你是要操作我们red,那么你的这种依赖关系当中应该有什么red的依赖吧,对吧,这个你们之前应该也是知道的,所以我我这里呢直接写了,因为我本地就有,所以我就写个的那个依赖应该是用一个他的客户端的叫吧,对不对,应该用这个啊,所以我就用它了啊,如果你之前你的仓库里面是有的话,你这边是可以直接点出来的啊,非常方便,就这个直接写就行了,如果你说我仓库里没有的话,你得从上网上网去找那个没问的什么那个说明给他拷过来用啊,我这有我就直接用了,那除了这个以外还有。
02:04
因为你的目的是要做缓存,可是你把什么数据做缓存呢?你把我们买circlel当中的数据给它做缓存对吗?那所以也就意味着我这里是不是还应该加什么东西啊,是不还应该加个买circle的东西啊,对不对?所以你把买circle的它给他拿过来,那我得连接买circle,连接完成以后,把咱们的数据放到JD当中,应该是这个样子的啊,所以我现在呢,把这个依赖关系给它准备好,准备好之后,那在我当前的程序当中,我要添加点东西了啊呃,这个诶点错了啊,应该是我的下面cash,嗯,在这里,诶,我刚。这这没错吧,好这个没错吧,吓我一跳,然后呢,我这边文件夹的这个颜色不太对吧,啊不太对啊。给大家变一变我们的module,然后呢,我们这边的cash啊,然后找一下我们的Java是source,然后是我们的它,嗯,然后呢,点击它点击OK啊,然后呢,在我这边呢,我们刷新一下。
03:06
刷完新以后哟,还真是不太对,大家可以看到我这个看怎么了,灰色的什么灰色的话说明它里面用不了,我想想啊,我这边我找一下咱们这边我再看看我的CTCT当中这个东西打开。我们这边的cash,嗯,确实是用不了啊,用不了不用了,删掉啊,删掉以后关掉啊,重新建一个,嗯。重新再建一个new,再开启一下啊,它那个灰色的话,可能是它识别不有问题啊,最后呢,我再来建一个叫E啊扩展一个,嗯,然后呢,点击下一步啊,然后呢,往这儿再加一个啊点击完成,点击完成以后呢,我先确认一下,咱们先刷出来,诶这个是黑的是吧?刚才那个是灰的啊诶。啊,这个不管它,因为我我把那个依赖关系去了啊,所以它这边就是个root这个根啊,这个不用管它,那现在呢,我们这边现在这个它已经有了,我把刚才的那个它呀点过来啊,把这个呢,我们原封不动拷贝过来,拷贝过来以后我放到这里去啊,好保存,保存以后呢,我这边再刷新啊,别别灰了啊。
04:21
诶好了啊,还是黑色的啊,能是黑色的话应该就能够找到了,否则啊,你写完依赖关系它也读不出来啊行,那现在呢,把这个呢关掉,关掉以后呢,我来确认一下,诶这个文件结构是对的,那我现在点击new啊,我们要创建点东西了,很简单,咱们的目的呢,就是为了把数据放到缓存当中,事先准备好,你用的时候直接从缓存里面取就完了啊,咱们就这么个意思,所以呢,在这种情况下,我们直接创建个包,咱们就要com点艾特硅谷啊,点我们叫做CT啊,点cash啊,直接点ok.ok以后,那我这里呢,直接new,我们创建我们的类,这个类呢,我们还跟以前一样叫,嗯。
05:03
嗯,好了啊,然后呢,点击OK好了啊,然后呢,在这里来,我们写上叫做它写个命方法好,写上咱们叫启动啊,启动我们的缓存啊,缓咱们叫缓存客户端啊缓存客户端目的很简单,往我们的red里面增加我的缓存数据,就这个意思啊,嗯,像吧,像我们的嗯,Red中增加我们的缓存数据,诶就是这样好了,那这样的话,那首先第一个那没得说了,我们就不写别的程序了,就专门写这个main方法就完了啊别写那么复杂了,咱们这里呢,就读取,读取什么呢?我们叫做my circle my circle的数据啊,My circle中的数据,然后干嘛呢?然后诶写上像我们red中啊,我们说存储数据啊,存储数据好,那像买读取满S的数据,这个咱们恰恰刚才已经怎么了,咱们刚才是不是已经读过了,那没有必要再写一遍吗?
06:03
那所以呢,直接从我们刚才那个位置咱们找过来就完了啊,所以呢,我们这里点一下,点我们这边打开,打开之后咱们恰恰有这个东西啊,这个咱就不要了啊,这个咱就不要了,诶好,然后呢,它不要的情况下,我想想要也可以啊,留着吧,把这个给它烤出来,烤出来以后呢,放到我们这里啊来放过来我们的两个map呢,先给它准备好啊,然后呢,把这个地方呢,诶给它去掉啊好,准备好之后,接下来我们再把下面这个代码呢,原封不动给它拿过来,下面这个代码呢,就是我们的查询了,那这个查询呢,我看看啊在哪里呢?Quary啊框在这,我把这个呢给它挪到我们下面来啊好,然后把这一套东西啊,咱们全拿原封不动拿过来,这样的话呢,代码呢,跟以前呢,就是起码没有区别了,诶,所以好这个代码呢,跟以前完全一样啊行,嗯,好把它挪到我们现在的这个位置,我是原封不动给它挪过来啊好点击OK,嗯,行了那。
07:03
然后呢,这边有个connection,这个connection该怎么办?Connection是不是我们之前封装了一个工具类叫GDBC啊,那所以那也就意味着我完全可以在这里面在做加个依赖啊,咱们再加个依赖,这个依赖是什么呢?是不是我们那个CT的那个common呢?诶把那个common给它拿过来啊好了,你把common拿过来的情况下,那我这里还得刷新一下啊,保证不出问题,嗯。好,没问题了,那没问题的话,那我的connection就简单了啊来在上面我们写上叫connection,嗯。好,它等于connection啊好等于那好了啊等于那然后呢,等于那的话,我想想啊,这边关闭,那我这边呢,也给它来,嗯,把这个放到下面去啊,放在一块,嗯,好了,放到一块之后,那我现在的这个位置呢,Connection应该放前面,它等于我们的JBBC u.get connection哎,咱们这么做就可以了啊,这么做以后,那当我做完操作之后呢,我希望呢,像这边也给它关闭啊,所以来我们这边给他来,嗯。
08:11
Hey。嗯,我写的不对呀,也没什么不对,嗯,放到这边来,嗯好了啊,然后呢,把这个靠背。拷位以后呢,把它放下面去好啊,然后把这个我们的connection,如果connection不等于空,把这个connection给它关掉啊,好了,那行,那现在呢,我们就准备好了,最起码呢,这个代码是我们之前写过的,对不对,咱们一会儿再说,然后呢,我现在呢,干嘛呢,把这个里面保存到map中的数据呢,我先别的不看,我先看查的对不对,有没有问题,没问题了,咱们再做下一步啊,所以我现在呢,先来直接操作,咱们叫它打印,打印我的u map啊,点我们的那个长度,哎,看看长度,还有一个再来点再来,然后呢,点我们的这个叫data map,点我们这边set,诶只要长度跟数据库是保持一致的,说明数据你全取到了,取到了以后咱们往red里面存啊,咱们这么做,所以呢,我这里呢,就直接来访问一下吧,啊,来运行。
09:18
运行以后看结果。大家看对不对啊,25个用户对吧?然后呢,每年我们说378条数据对不对啊,当然我们的闰闰年是吧,这不200这么更多一条是吧,那个不管它吧,嗯,说明啊,我的map里面的数据是对的,数据库的数据我查到了,查到以后就该向我们red中存数据了,那像red中存数据你们还记得该怎么做吗?没印象的话,咱们看看这个代码应该是有个叫吧,是不是叫啊等于new啊,如果你有集群的情况下,可以访问集群啊,或者有个什么连接词之类的,我们这就不那么做了啊,然后呢,我的je里面应该传参数,传什么呢?你的哪台机器吧,还有我们的端口号对不对,端口号是多少,默认端口号。
10:11
6379吧啊6379啊,这个真是没有印象了是吧?然后呢,我们这里啊,我我这个我这还子有点特殊啊,为什么呢?因为我的呢是在这个里面啊存着呢,说白了把它启动一下,你们也是四台机器是吗?都都删了啊,讲完就删了是吧,你们后面还要讲相比还要用到的,你们后面还要学别的项目啊啊其实也简单是吧,这个也好好也简单啊好了,那我现在的这个地方同学们看啊,我现在在地四,我现在有了,有了以后干嘛呢?我现在呢去写上咱们叫我叫LINU4啊这是我的机器,然后呢,后面是6379好了,然后现在呢,我们假设它连上了,那连上的话,我我应该往里面放数据,我该怎么放呢。
11:13
点你你还记得它里面有五种类型的数据吧,五种数据类型对不对,那现在我要把我们当前的数据往里面放,应该是怎么放啊这样东西。往哪一种数据类型里面放。我们这是不是就感觉跟个对象一样,对吧,太ID之类是不跟个对象似的,往哪里放,是是往哈希里面放啊,啊往哈希里面放啊,所以里面有一个叫H,有一个叫做S吧,对不对,这个set里面这是不是那个key,这是那个fair是不是属性,这是value,就好像给某一个对象的某个属性赋值一样吗?就这种感觉啊,哈希啊,Key value6,这是那个key,这个key对应了一个哈希,然后哈希里面有个什么呢?Key和VALUE6啊,就这样,所以呢,我们说了就感觉跟个对象一样啊,那这里呢,我就写上咱们就叫CT,什么U啊CTU就是我们这个东西,然后呢,里面是什么呢?就应该是我的map中的每一个元素了,那所以呢,在这种情况下,我们应该给它来什么呢?做一个循环便利,所以user map点点了以后呢,它里面有个什么东西啊叫key set,然后呢,我们再来点。
12:29
啊,咱们的这个,嗯,给他拿个迭代器吧,啊来我们这里呢,给他一个迭代器啊,然后呢,我们在这里呢,就有一个它就可以了,或者加个key得了啊加一个key好了啊,现在呢,我们就可以直接来了啊,咱们叫well,嗯,行,把这个呢我的key我想想也可以吧,也无所谓啊,就这么着吧,嗯,第二我们的叫has ne,对,然后呢,里面就是我的每一个key了啊,这个key其实就是那个tell啊,然后呢,我们的这个叫做点我们的get,咱们的get呢,把那个啊get去了啊不对。
13:08
应该是它啊,先取它,然后点我们的next啊,然后下面啊,下面不是我们的字串,是我们的它,咱们叫value,嗯,它等于我们的map map.get把那个K咱们传进去,这样的话key value就有了,那key value有的情况下,我们的这个它就可以了啊,放过来,放过来以后这个就是那个key,然后呢,这个呢就是那个value,诶value,但这个value啊,它会出错的,因为这个value是个整形,不能这么放啊,简单点直接这么加就可以了啊,这么加完了以后都放字串,那么这样的话,我们里面的数据就有了,然后呢,只要成功的情况下,里面的数据呢,我都可以给他取到,就非常的方便啊。好了,那我现在这么写完以后,那现在我得去运行一下了啊,咱们先看一看,因为只要我们循环遍历没有问题的话,我们red当中应该是有数据的,所以在这种情况下呀,很简单,干嘛呢,我们这里呢,去访问一下啊,来咱们找一下,咱们找一下我的LINUX4啊呃,我先确认一下吧,啊,咱们确认一下我这里呢,来啊来我看看我的啊,把这个呢,我们去掉啊。
14:23
然后呢,我们这里呢,我们的red啊,好了,我现在呢,这个red一直开着呢啊,之前呢,是给它什么呢,给它挂起了,现在启动以后还在用啊,所以呢,我接下来我们的这边啊,来我们的module,然后呢,我们的red,呃,这个red呢,有一个我们的ban啊,有一个red啊,有个client啊然后呢,我们这边直接回车吧,回车以后,那我现在干嘛呀,叫kiss吧,对不对。没印象是吧,嗯,K星表示啥都没有吧,对吧,表示啥都没有,那啥都没有没关系啊,我只要成功保存的话,你不就会有个key了吗?对不对啊,就这个意思啊好,那我现在呢,我就准备呢来试一试了啊,咱们试一试,因为前面数据库的操作是没问题的,就看我red能不能正确访问了,所以我运行。
15:09
运行以后看书去啊。来好了啊,还挺快的是吧,嗯,好挺快,以后我来看看这个kiss啊,来大家多了什么东西啊,CT下划线优的吧,对不对,然后呢,我这里有一个他啊,咱们这边来啊,然后有个咱们叫做key,这个key呢,就是CT啊,咱们写上咱们叫。大家看我的数据是不是全进去了,全进去以后,这这里是不是我们的那个tell啊,这不是ID嘛,对不对,只不过这个ID是个字符串,这个倒不重要啊,反正我们能够想办法把它转换成数字不就完了吗?所以这就说明我们当前的程序呢,写的是对的啊,最起码呢,我的缓存服务器里面有这个数据了,而且是一个独立的服务器,不占用我们的哈的资源,这不挺好的吗?所以在这种情况下,那么它可以,那么我们的那个data map也一定可以,所以啊,我再来拷贝,拷贝以后把上面这个东西啊,我原封不动拿过来,拿过来以后把这个我们的它,诶我们去掉,去掉以后我们的map应该是这个叫data map了,嗯。
16:14
好了啊,然后呢,他在这边我们做一个迭代,迭代以后只是k value6,那么k value的话,它我就改一下,咱们叫date啊,那这样的话呢,我们会把这个date的那个map里面的数据呢,再放到我们的这个里面去,那就可以了,放到不同的这个对象里面去,那这样的话我用起来也方便啊,好了,这个呢,咱们就不测试了,咱们直接呢回到咱们这里来,回到这里面来以后同学们想想我该怎么做。我我回到这里面来,我是不是就应该干嘛呀,把之前用JDBC做的事情先用斯来做了,那所以我首先我的第一件事情先能够访问je斯,所以啊,我回到我们的这个分析当中,要打开我们的什么依赖关系,在这个依赖关系当中,我们应该怎么办,是不要加上我们的叫Z呀,你得把Z先给它准备好啊,就是这样,你准备好了以后,那这个时候呢,我们刷新啊刷新一下。
17:11
刷新没有问题了,然后呢,我们再来,在我当前的这个里面,我就准备去做一下了,我写上一个叫做什么呢?Pro,我们叫啊好我们叫je啊,等于一个nu就可以了啊好了,那你把这个je如果准备好的情况下啊来我们准备好,那呢,在我们初始化的时候呢,把这个呢给它来啊,它等于我们的new,我们的je,然后跟之前一样,我们的LINUX4,然后呢,6379 6379啊刚才已经测试过了,是可以访问的,那好,既然没问题的话,那么接着往下下面的close关掉,那么关掉的情况下,我们同样来判断叫if啊,我们的它如果不等于那啊不等于那的话,点我们的close,诶给它关了就可以了啊所以啊,这个操作呢,其实就是用来读缓存的,那你读缓存的情况下,大家想想,那么我们这还能从这个map里面取吗?没有了吧,那你没有的话该怎么办,是不是我们这里其实。
18:11
直接取就行了,我们叫je点,点了以后,刚才你是那个叫h set,那你这里是不是应该点我们叫做什么H,我们的get呀,这个get呢是就从哪一个对象读哪个属性吧,那咱们这里不就是那个K嘛,对不对,这个K这个K是固定的呀,就那个表的名字呀,啊其实我们这也可以写个常量啊,这里我就不写了,咱们直接先用起来,然后接下来第二个是什么东西,是那个电话号码吗?电话号码不就他不就是tell吗?诶就是它啊,但是肯定会出错,因为它返回的是一个什么字串,可是我这里是什么东西啊,Int,所以我最好给它转一下啊,来,我们点我们的part int,嗯,把这个呢,给它拿过来啊,拿过来放到我们这边啊,放到这边以后,那这个如果没问题的话,那么大家想想那个map是不是也没问题啊,诶所以啊,拷贝拷贝以后呢,把这个呢放过来啊,那这里就改成一个我们叫做date,嗯,然后把这个它咱们拿到这里。
19:10
那这样的话就从缓存里面取数据了,那缓存的服务器是独立的,性能上就会有所提升啊好了,那我现在呢,就把这个给它做完了啊,最起码呢,我们把这一块的东西给他做了,好那我现在把它做完以后,剩下的事儿我该做什么,大家想一想。现在我把这个程序做了个改善,改善之后,那我首先哦,对了,刚才忘了一件事情了,我刚才是不是应该还是给他走一遍呢,你不走一遍的话,是不是里面那个数据是不是没有啊,而且我刚才我的程序写哪了,哦在这啊,我快忘了。我这边的数据我应该再走一遍呢,我我不走一遍的情况下,是不是就意味着我们的这个数据他没有啊,还没有是吧,我走一遍啊,哪里错了。
20:00
Date map哦,这是吧,啊,这没忘了改了,这个应该是我们的map啊这个东西。应该是把这个map啊变一下啊,从这里面取啊好了,那我现在呢,我们再走一遍啊来运行,运行之后看结果啊。啊,只要数据都能出来就可以了啊嗯,好了,走完了啊,走完了我这边可以再来确定一下来,我们这边呢是get啊嗯,Get以后没问题啊,还是我们的数据啊行,那接下来呢,我们再来一个咱们的那个date。好了啊,现在不也有数据嘛,都有数据的情况下,年月日这方面啊都可以了啊好了,那现在呢,都没问题了,那现在呢,我们这边就可以不用它了啊,因为缓存数据已经存在了,存在的情况下,我们接下来咱们要准备做这个事情,可是这个事情的话,同学们想想啊,我现在需要干什么事情,就我现在呢,我把这个程序改完了,我现还有我我现现在是不需要打包了,对不对,我这个打包我是打成什么包运行的包吗?还什么包是要可运行的,那所以我打成可运行的,这个咱们之前配过吧,你配过的话是可以直接打,哎,可以直接把这个打包啊点击。
21:11
好了,那我现在可以直接打包了,我还需要做什么事情?像现在我把这个包啊给他打完了,打完了以后呢,原则上来讲,我是不是就只要把我当前的这个它,咱们打这个包来在这儿呢。因为我们别的是不是都有啊,别的有的情况下,我们是不是把这个东西我们要干嘛,我看看啊把它吧,把它我们是不是应该给他拖到上面去啊,所以来咱们找一下,来我们这边咱们叫做它,然后呢叫date,然后呢有一个date,然后呢把这个打完的新的包给它放过来,好点确定,那么我们还需要什么。还是要做什么事情。我们的依赖价包,我们是不是应该怎么办,给他放到哈当中啊,就跟那个买一样,对不对,你连接买circle的话,那些驱动程序你是不应该放到里面去,那同样道理,我们的它也是远程连接呀,它也需要一些加包,对不对,那所以这个也要放到哈当中去啊,也应该这么做,那所以我现在的回到啊来我们写上咱们这边打开我们的哈杜啊,然后呢,有一个叫cell哈豆op common,我们之前是不是把那个买S放这了啊,那现在我们哈杜我们那个什么也要放过来,是如果你们之前学的话,应该是有这两个加包的啊,咱们打开,打开以后点一下啊点一下,然后呢,我们的course这里的点啊。
22:35
Ready啊,有个叫资料,资料里面有这两个价包。有这两个价包,这两个价包呢,是你们学ready的时候,应该是给你们用过的,应该是啊,那么我们这里呢,直接拖到这里来就可以了啊,如果这两个架包呢,你确实没有的话,我记得我这边也给你准备了啊,电信客服我们的资料里面有没有。看看大数据框架里面。
23:00
没有放什么。没有放,那我就放一下吧,啊,把刚才那两个呢,我放在这里啊,到时候再给你拷一下,咱们叫red啊,如果你们说老算啊,我也没有是吧,那就把这两个价包给你放过来啊,没放过来呀,那red啊,咱们来咱们的资料啊,这两个价包给它拷贝,拷贝以后呢,放到我们的它里面资料啊,咱们的大数据框架里面的red,诶给它放进来好了啊,到时候拷给你面就可以了啊行,那我现在呢,这个做完了以后,那我现在还得做另外一件事情,把这个呢给他退出去啊,退出去好了,退出去以后这边呢,我们再来回去我们协商啊,直接我拷贝得了啊。来把这个呢,我拷贝,拷贝以后呢,我放到这边回车,回车以后我该怎么办,是不是把刚才的那个东西给他分发一下呀,对不对啊,咱们协商,咱们这里呢,有个叫jeice,有个叫做common,那所以我写上咱们叫ice,那给他来分发一下,然后呢,我们再来一个common,嗯,咱们的common,诶好了,那这时候我现在给它做完了,做完了以后呢,我们准备来试一试啊,那首先我先把咱们数据库当中的数据呢,给它清空啊,保证呢是什么都没有,接下来呢,我们再来执行一下啊来那这里呢,我们就直接来执行了,那么我们来我们CD啊,然后呢是斜杠OPT module,然后呢是我们的date,好,接下来我们在这里呢,就直接访问,那么我们写上叫斜杠OPT module,然后哈op啊。
24:31
然后呢,我们这边啊,咱们的雅,我们的酱,然后呢,我们CT啊,咱们这边的他,然后CT诶我们的酱现在呢,我就回车看看它能不能够把我的数据给它保存好。所以啊,我们现在来试一试啊,也就意味着咱们之前未完成的这个功能啊,咱们通过一个简单的什么呢操作,把它用red呢来做一个数据缓存来读取我们的ID,有了ID的话,咱们看看对不对啊,毕竟呢,咱们之前呢是固定的嘛,嗯。
25:11
我看咱们有的同学提非常的快,为什么我的这么慢换电脑是吧。我怎么感觉好慢呐?那个你们之前学的时候是不是讲过那个叫job的history啊,是不是讲过吧,那讲过之后记住啊,就是你我们有的同学在那个什么做这个map review的时候会出错啊,那会出错的话,最好是把那个历史记录服务器打开,打开以后从上面看看那个错误信息,那个看起来会更加好一些啊,否则呢,你就要想看错误的话,是非常麻烦的一件事情啊。
26:21
这个确实有点太慢了,这样啊,大家休息一下啊,就假设他成功了,你们先休息一下啊。
我来说两句