00:00
好,那前面呢,我们这个red已经开通成功,并且呢也能测试连接过来,那么来看怎么该连接red,那么来到我们的压ma里边来进行配置就行了,有没有发现呢?在前面分析自动配置的时候,我们跟red有关的所有配置,我们呢都在red properties里边spring RA开头的,所以我们可以来配第一个spring red URL,像我们要联想哪一块的red,它的语法格式是red冒号双斜杠,然后呢,这是用户名冒号密码,然后呢艾们red的地址加上它的端口号,所以其实一个URL就呢帮我们重写了host,我们red的连接地址,包括我们的端口号,包括我们的用户名密码,把所有的东西都准备好了,那我们就可以在这儿来进行一个配置,我就来写一个red的URL red点一个URL来直接写一个那ready的URL,我把跟ready有关的,我们可以配到上边,那URL呢,我们就把它的这个语法。
01:00
格式来复制过来叫red,什么什么CTRLC,那我们要连接red的地址呢,那user,那就是我们自己开的用户,然后呢,带上密码,然后呢,再来带上red的服务器地址my red的这个公网地址一复制就行了。最后再带上red的端口号,好,我们在这呢就准备了一个它,然后red呢,其实就准备好了,然然我们其他的东西我们也可以给它配置,比如我们来配置啊,我们当前red客户端是不是要启用安全连接,包括我们呢,是不是有这个最大连接数,最小连接数啊,比如我们在下边呢,这块都有,我们对,因为我们现在是LIS来连接我们这个ready的,所以LIS里边的所有属性我们可以定义池的大小,这些东西呢,我们都可以在这定义,那相当于我们最小配置在这一块呢就结束了,那么接下来该怎么操作ready red,因为现在知道呢,Red的这个客户端已经呢给我们放到容器中了,有red table和string ready tablet,所以呢,我们未来简单期间,我们先来使用一个string ready tablet,我们让它呢,直接来注入一下string,我们来owa string red tableilet,我们来看一下啊,那这一块呢,没有这个string redilet们来确定一下。
02:19
我们导有有没有导入red的这个start场景,好,没问题,那们接下来就来自动的来注入我们red的tempile来进行测试就行,Red red templatet templatet,诶,我们没有发现这个客户端auto comp里边red temp我们来点一下啊,它确实在这里边有,我们在这一块呢,测试类里边写不出来,那这个string red tempt我们自己来引一下string redt啊,这可能是idea的问题,Redt这个呢,就是来操作red的客户端来at owa,我们自动输入,因为我们这个自动配置类已经给我们把它配置好了,下来我们来写一个我们这个test red来测试使用red,这个就叫test注解好,我们接下来string ready table,我们用它的一个方法叫ocean for value,所以我们准备要操作KV都为。
03:20
润的这个东西,然后呢,我们把它拿过来叫operations这个客户端呢,现在于我们准备要操作PV,那么接下来呢,用它里面的一个方法,比如呢叫set,我们给red里边保存一个数据,比如呢我们就叫hello hello的值呢,我们就叫word,因为KV呢都是这个,同时呢,我们也可以从red里边拿到我们刚保存的hello的这个值,Get来看一下我们刚保存的hello的这个值是多少c out,我们在这呢打印一下,只要我们这个操作呢是正常的,那说明我ready就来整合成功。
04:05
好,我们来稍等它的整个测试运行。来看一下我们test red这个方法能否运行成功,这个呢,我们因为连接的是远程阿里云的red,所以呢有可能会出现unable to connect red,说明这个red呢不能连接,不能连接的这个原因,他说呢连不到我们的这个red地址。那连不到的原因呢?来往下看,他这个red不能连接到这个地址,那连接错误的原因是我们这个author,相当于我们这个认证有问题,那么这个认证有问题呢,相当于我们这一块URL,那么这个red的这个连接啊,那我们这一块呢,就应该是写错了,我们账号密码是什么?写错了吗?可是我们这个账号密码我们来看一下啊,那在这一块来测试连接red的时候呢,那应该都是没有错的。
05:06
那么在这是小写的LY,大写的LFY 123456,在这来看一下这个小写的大写的123456,那如果这种方式这个连接不上的话呢,我们可以使用我们的默认配置,比如red host red的主机地址在这把red的主机地址呢。CTRLC复制过来,然后呢,还有我们这个red的端口号PORT6379,这也是默认默认写好的,然后呢,还有red的访问密码password,这个密码是什么呢?那人家说了是账号冒号密码,这就是red的访问密码,然后呢,我们来重新做一个测试。走。我们相当于在压面里边,我们来分开配置了red的访问地址,然后还以及它的这个密码。
06:02
那最好来确认一下我们的这个访问地址,因为访问地址我们在这是直接复复制的,没问题,而且密码呢,确实是账号冒号密码,那我们来看一下,好一个测试呢,已经通过好,我们已经获取到我们red里边的值,就是word没问题,而这个值呢,也被我们保存到阿里云的这个red里边,我们可以用这个客户端打开来看。在这个客户端里边呢,我们也直接能看到我们刚才保存的值,稍等一下。这块的连接呢比较慢,好,我们在DB里零相当于第一个数据库里边来保存了,Hello,它的值呢是word来没问题,我们这个red呢,我们就测试通过了,我们以后呢,相当于使用string red,我们就可以来操作red了,且呢我们在这一块需要注意的是,我们在底层来操作red的时候,使用的是red table,那red temp在底层来获取连接操作red的时候,它是使用的我们这个客户端叫LIS,因我们之前看到我们在导入的时候呢,导入了LIS,但是这个客户端呢,它是基于ne写的一个并发性能比较高的这个客户端,而我们以前呢,也比较常用简edit,那能不能切换这个客户端,其实也非常方便,我们可以来看一下,我们把这个我们先操作red的这个测试代码拿过来,那这个red的测试呢,非常简单,拿到这,然后呢,我们想要切换到解edit也是非常方便的,因为我们之前呢,看到一个red的自动配置类是这么来写的。
07:32
它同时呢,导入了LIS的这个以及解的,但是呢,解的判断就是我们red的client type,我们的客户端类型,如果是解,它就这么来做,同样的,而且呢,必须是我们当前在我们这个项目里边已经导了解ADS的这个炸包,所以我们可以在这儿来做,如果我们想要使用简as进行操作,我们可以把LIS的这个依赖移除掉,那或者是呢,我们在这不移除,我们直接来导入解as,并且呢,我们告诉他,然后呢,我们底层就是要用简D,那我们现在就来确认一下在spring boot官方有没有声明我们简ad的这个版本解A,哎,我们发现呢,有声明解A的版本,所以呢,我们只需要引入解A的这个客户端就行了,那我们就直接把它引过来CTRLC来到这,如果我们想要切换底层操作的这个客户端,那我们就可以在这来做,这是data RA导入解好。
08:32
走,我们把它导进来,版本号呢我们也不用管,那这样的话呢,相当于同时导了LIS以及解as,我们看同时呢有LIS,然后呢,还有我们的这个解S可以刷新,大家看一下有解as,但是呢,我却在配置文件里边,我明确的声明兰type,那客户端类型类型呢是用简A,那这样的话呢,我们以后给我们底层放的这个连接工厂,就是杰的连接工厂,我们可以来拿到它的这个连接工厂看一下red auto con,因为我们知道无论是LIS的这个connection factory,还是我们这个genes,它呢最终都会给容器中放一个我们称为叫connection factory,相当于我们的red的这个连接工程,大家看啊,这是Li的,它放一个red的连接工厂,那解呢,也是在这判断and b,看容器中有我们的,有没有我们的这个连接工厂。
09:32
叫的connection factory的connection factory,但是无论哪个connection factory来看一下啊,它应该都是我们的称为叫red connection factory的这个组件,哎,那这一块哎就是在这无论呢,你是用的简connection factory还是呢,你用的是LIS的connection factory,他们呢都是reds connection factory,所以呢,我们就在这就来看一下reds底层的这个连接工厂是谁的就行了,我就看有没有切换过来。
10:06
在这顺便来输出一下connection factory get class,好,我们来同时来进行测试。那现在底层呢,就切换使用了简ad,哎,非常方便,我们就只需要再导一个简ad,如果我们想要切换到使用简ad作为底层操作red的客户端,那么要做的步骤呢,就是这样子的,首先我们导入解edit,然后呢,接下来我们再要做的就是在这明显的配置说我们的客户端类型就是它。我们把这个压面放在这儿好,然后呢,我们来配置就是它,然后这个配置的前缀是spring冒号。好,那这就是我们的整个的这一块配置来也确认一下,重新来操作,然后发现呢,他现在使用简来进行操作了,这一块也没问题,包括如我们要调整底层的,无论是如果我们使用的是LIS,那么要调整LIS这些连接池的大小怎么调呢?都是在reds里边有对我们这个LIS的调节,比如它池子里边最大的限制数,比如我们来写一个十,然后呢,最小的,呃,比如这有一个最小空闲的,比如我们来调一个啊四五,我们允许呢,最小空闲五个,包括呢,我们池子的其他大小,以及我们对于LIS的其他配置来看一下啊,在这个里边呢,还有对我们这个客户端的其他配置LIS啊,最大的这个活动数我们之前已经配过了啊,这是我们来配池的,我们看有没有配其他的LIS,在这个里边还有它的整个集群模式,那集群模式里边的所有这些配置,比如我们集群的整个拓扑的这个刷新。
11:55
经间隔等等等等,所以我们所有的这个东西呢,我们都可以在这配置,如果我们是简ad也一样,因为我们现在呢是简ad,我们把它呢再来切成简edit底层使用简edit来进行对red的这个操作,那么也可以对简来进行定义,比如它最大的这个池大小是十,所以呢,所有的自定义也都在这儿,这就是我们整个的这个最基本的这个配置。
12:22
这个配置拿过来,那么接下来呢,再来做一个小小的功能,做一个什么小功能呢?来到我们这个首页来看一下啊,后台管理页,在我们的这个后台管理页里边呢,有这么一个模板,就是在这儿呢,有一个数量的统计,那我希望是这样,只要我们后台管理页里边,哎,每一个请求访问一次啊,我们监控上几个请求,我们在这儿呢,打印出我们这个请求的访问次数,比如我们来监控上两个请求,第一个呢,是我们之前在这,我们来看一下,我们来监控第一个请求,就是来看我们这个这个登录,登录方法呢,执行了几次,我们再来看SQ这个请求执行了几次啊,我们可以来监控上几个请求,我们就来监控city account circle这几个请求,那这个监控怎么监控呢?我可以这么来做,我可以在log intercept这里呢,有一个拦截器,这个拦截器呢,因为我们当前拦截器,我们在web里边的配置是这样子的,所有的静态资源呢,我们基本上都放过了,然后呢,剩。
13:22
剩下的请求呢,我们都要过拦截器,那这两个请求我们也让他过拦截器,那么要统计他请求了,那接下来呢,只要一过拦截器,我们就在拦截器的前置方法上来,我们让他呢,给我们去操作red,记录一下当前访问的是哪个路径,它呢被访问了多少次,所我们想要完成这个功能,那想要完成这个功能,我们专门自己来写一个拦截器,比如我们这个拦截器呢,我们就叫red count red URL count,我们专门来统计URL的这个intercept,我来准备了一个拦截器,它来实现handle intercept接口,Handle intercept这个接口,然后呢,我们来添加上拦截器的方法,Pre handle这个方法呢,永远都是放行,然后呢,每一个人进来,我们都用来操作red进行访问,所以呢,我们把这个拦截器and component来放到容器中,然后呢,我们,并且我们让它自动注入我们red操作red temp string red temp。
14:22
String readyt,然后呢,我们来写一个owa。那就叫ready,那接下来我们就来操作red,我们希望呢,整个请求过来,我们先来看访问的是哪个路径,有一个get request uri,我们把它当前请求访问的是哪个路径拿来,然后呢,就使用这个路径作为我们的K,我们保存到ready里边,那么就ready点一个options for value点一个,接下来呢,我们就要set set呢相当于是什么set呢,相当于就是我们来设置某一个K,它的值是多少,但这个呢有点麻烦,因为我们现在是要计数,想每次访问呢,这个K就要默认加一,所以呢我们可以使用它,这个里边呢,我们看到这有一个叫increment,相当于增加,所以呢我们给每一个K加一个值,而K呢就是它,然后呢,我们这个方法呢,就是默认每次访问访问我们当前URLUR就会计数加一计数。
15:27
加一,哎,那这个一呢,只要一加完以后,那我们就直接放行了,所以呢,我们把这个intercept我们可以退到我们系统里边,那我们在这个registergistry里边呢,不止加这一个intercept,我们再来加一个intercept.and一个intercept,这个intercept大家注意,因为我们这个cept,如果我们是new的一个,我们这一块叫red这个intercept,那出现啥问题,因为你是自己new的,所以你自动注入的red没法用,因为我们只有容器中的组件S么呢才会解析这些注解,所以我们不能自已用,那应该呢,让它从容器中拿,那容器中又怎么拿会非常方便,因为这是一个配置类,我们red time里呢也已经配置好了,所以呢,我们就可以让它注入,不是red time里配置好了,是我们的这个特cept已经有了,所呢我们直接让他从容器中拿这个特cept,所以呢,大家就会现在就会考虑到一点,同样的这个。
16:27
Filter和我们这个intercept它们呢,都具有相同的功能,那用哪个好呢?我们的这个filter和intercept几乎拥有相同的功能,都是拦截,拥有相同的功能,那用哪个好?面试题呢,可能会问这两个有啥区别,首先我们来说区别,Filter呢是so原生组件,它呢是so let定义的原生组件,好处呢,就是我们脱离了spring也能使用,脱离spring应用也能使用,然后呢,我们现在开发一个web应用,我不使用的技术站,那我们想要进行拦截,我们filter呢就能做,但是呢,我们的这个intercept,那这个intercept呢,它是加定义的,是spring定义的,这个接口是spring定义的接口,所以呢,它只能在里边用,而且另外一个好处就是既然是spring定义的。
17:27
这个接口你还能能给他升上来写owa注计算注解我可以使用的功能,使用spring的自动装配等功能,所以我们直接在这来一个owa就可以呢,把它里边我们以后要用的东西拿到,所以呢,我们接下来我们就来到这个intercept里边,而且呢,我们这个red URL count的这个intercept,我们也是自动注入了red,那么现在呢,来到我们的web的conflict,那我们的这个intercept呢,就是从容器中拿的,然后呢,再来添加一个点一个and,添加一个我们这个路径映射,我们同样的也是来拦截所有请求路径,但是呢,我们来排除什么呢?排除所有的静态资源。
18:16
比如我们把所有的这个静态资源,我们也来给他一放行。好,那这就行了,当我们当前系统里边呢,就有两个intercept,来看一下现在这种情况下,我们能不能每次请求访问都有这个计数。来测试上几个请求就行。好,那么现在呢,整个项目启动起来,来访问一下我们的项目,我们local host local host8080,我们来访问,好访问呢,在这一块有了,包括呢,我们可以来看一下red里边有没有记录F5来刷新一下,呃,这个F5刷不了,我们在这儿刷一下,那在这一块呢,我们给red里边好像没有保存什么访问记录,那接下来我们来重新随便登录一个,因为这一块的是放行的,我们没放行的,我们可以让他来看一下,比如我们来访问慢HTMMR,看一下red里边有没有记录漏,好我发现呢,有一个慢HTMMR,他访问了四次,我多刷,多刷几次,他这一块的数字呢,就会发生了这个变化,哎,现在呢就是八次,所以呢,那我们接下来再来访问其他的,比如来访问basic table,它呢访问了一次,那么在这就可以刷新我们看到basic table这个路径呢,有访问,诶他在这呢统计了两次,两次的原因呢,是因为我们这个basic table出现错误以后还有转发。
19:48
他可能呢,额外计数了,再来刷新一下,好再来刷新一下,我确认只刷新了一下,好,他呢在这又访问了四次抗机制给我们来决定的,那如果我们访问一个非常纯的这个请求来,我们就来访问circle来访问了一次,来看一下啊。
20:06
Load,好,我们这呢有个SQ请求访问一次多杀两次,一次两次,那这一块技术呢,一定是准确的,所以呢,你肯定呢,就是你的这个由于之前是由于错误还要转过来,所以我们这个拦截器又过一遍,但是呢,请求路径由于是转发,所以路径不变,所以呢就会一次叠加两次,那我们整个的这块纯请求访问统计呢,也是正确的,没问题,那么接下来呢,就希望把这些的东西我们能展示到首页里边,所以呢,一旦一登录到我们这个首页,那我们可以在这来把这个写完,一旦呢,一登录到我们的首页,Index ctrl,我首页呢访问慢方法也好,好,当然慢方法我们登录到这个首页,那我们呢,就希望在这个首页里边,我们展示这几个的访问次数,那怎么展示呢?我们来操作string的ready。因为我们所有的次数都是从那么这个里边拿的string complete,那么就来拿几个来给大家做一个测试就行了,比如release technique.options for value,然后呢,我们来拿上这几个option for value,然后呢,拿上第一个option for value,点一个get,我们现在呢,先要获取第一个,我们为了这个统计这个方便,我们就来获取第一个。慢页面呢,经常被人访问,来看一下慢页面被访了几次,好来获取一下它的这个数量,而它的这个数量呢,因为我们拿过来是一个string,所以我们需要转成浪类型,然后呢,再来get一个,我们再来看一下,来获取一个,获取一个,这个获取一个,我们再来获一个,我们这个circle访问了几次,就来看一下吧,这个circleq访问了几次,我就来随便来获取上两个的这个记录数,那这两个记录数呢,那为了方便我们就直接。
21:57
放给页面,让页面来进行展示就行了,And attribute,比如呢,我们现在呢,就叫man countt man countt这个数字呢是多少?那我也不用转成数字了,直接就把它这个字符串呢放到页面它展示就行了,点下and attribute,还有一个呢,叫circle count,这个circle这个记录呢,被访问了几次SSE,然后呢,来到我们的这个首页慢页,我们来把这个效果呢做一下,然后慢页,这个慢页里边呢,我们现在来看一下我们的这个模板,这个模板里边我先来找一下new o的,就比如来找它吧,Ctrl f new order,那new order呢,这个呢,就相当于那现在要来统计这个杠慢点HTMMR这个访问次数,这个访问次数的真正值是什么呢?Th past,我们来Dollar大号来取出我们的my count,好,然后呢,我们再来看下边。
22:57
这还有一个copy这个东西来,比如呢,我们现在呢,就是杠我们的circle.h-circle这个请求访问了几次。
23:08
Th test,好,这个访问几次我们来到大括号,有一个叫circle count,好,我们整个系统呢,重新启动,来测试一下我们完整的功能。好,来测试一下,来重新登录我们的这个系统。123456,哎,我们来重新来登录一下,这是123456走。好,我们这个系统呢,我们看到MY页面呢,访问了九次,S狗呢访问了三次,你们是在red里面保存的,所以呢,之前的访问次数还在这一直叠加,所以呢我们不断的刷新,那么呢,就会有不断的这个效果,12次,14次,15次,那们一点一点叠加,包括呢,我们来circle口多访问上几次,来来多刷新上几次,F5F5F5好,我们刷新上几次,以后呢,来看一下我们的这个页面来刷新,那我们的circle呢,访问了十几次,好,我们整个的统计效果就出来了,那至此呢,我们整个对于red的场景整合开发那就结束了,就是以后呢,在我们这个业务逻辑里边,我们操作red string red temp来进行对red增删改查就可以了。
24:34
那在整个操作的最后,大家别忘了,我们整个red如果使用完,我们不想用了,那我们呢,一定要在阿里云里边释放一下,这我们red的这个实例在这儿来点过来,如果不释放的话呢,他因为按量付费,按小时计费,最终把我们所有的这个钱全部就耗光了,把它选中,那现在呢,来给它给一个释放,那么这个实例呢就不用了,那释放呢,因为我们绑定了这个手机,释放操作是一个很重要的操作,所以大家要使用验证码来进行释放。
25:05
431114确定大家大家也在下边呢,使用完也把自己的ready释放一下就行。
我来说两句