00:01
各位大家好,在刚才内容中呢,我们完成了数据字典的列表功能,还有数据字典的导入和导出功能,那咱们下面呢,在数据字典里边给各位添加上缓存的功能。那为什么加缓存?首先给大家解释一下这个概念,关于这个缓存。缓存这个词各位同学应该有一定的了解,大家要明确这么几个问题,第一个问题,各位要知道咱们为什么加缓存,加缓存的目的到底是为了什么?各位要清楚咱们加缓存到底为了什么,是不是就是为了提高我们的查询速度,因为咱们用缓存能极大提高速度,而这里边缓存我们并不是什么数据都可以放到缓存中,有些数据不适合用缓存。有些数据适合做缓存,那什么样的数据适合做缓存呢?大家考虑一下什么数据适合做缓存,给各位做个说明。比如说我们在操作中一些。
01:12
固经常修改的数据,或者说一些比较固定的数据,或者说一些经常要进行查询的数据,那这类数据咱们是比较适合做缓存的,而我们现在大家看这个数据字典,这个数据大家很明确,这个数据一般来讲很难做改变吧,另外这数据是不是比较固定的,所以咱们这数据用缓存是很合适的,所以这是我们要加的功能,而这里边比如说咱们一些经常修改数据,一些重要的数据。比如说一些财务类的数据,那这些数据咱们肯定不适合做缓存,而我们的数据字典就特别适合给他做缓存的处理。那这个缓存怎么做呢?给各位来介绍一下这个技术,大家注意啊,在我们从三点一开始,它里面就提供了一个缓存的组件,叫瑞开始用它能实现缓存的操作,而这个好处是什么呢?就是它本身是一个缓存组件,而它底层可以切换各种的缓存内容,比如说VS在它底层都可以使用,而咱们只需要通过简单的注解,就能够很快的实现出缓存这种效果。
02:32
所以我下面就开始用这个spring catch加red,在我们这个数据字典中添加上缓存这个处理。这是我们的应用场景,那这怎么加,下面给各位来详细演示一下里面的一个过程,那我们来说一下,首先因为咱这个缓存不仅是在我们的数据字典用,后面有共能中,可能咱们还需要使用,所以咱把这缓存处理就给它放到我们的common中做一个公共的一个处理,那怎么做,我写一下步骤。
03:05
首先里边的第一步,因为咱要加缓存,所以咱们先添加上缓存相关的依赖,把这个加上,这依赖中主要咱们用到了ready中的依赖,那这依赖给个未来加一下,我把依赖就放到咱们的service u里边,里边加上依赖,那这个我给各位直接复制到service YouTube的破文件中,那我做复制。在里边加上依赖,这依赖我们看一下,第一个就是损boot里边整合red,包括里边这个po,就是池的这么一个依赖,所以咱们现在把这给它加上了,这时候我们的第一步,第一次加它需要联网把这个下载下来,各位加的时候需要给它多等一会儿。然后加上之后,下面我们进入到里边的第二步操作,第二步怎么做呢?咱们就可以在U里边加上一个RA的配置类,选这个操作配置类是一个比较固定的写法,各位在用的时候,你把我这个类直接复制用就可以了,但是你能看懂里面这个它的结构,那我下面给大家来写一下第二步。
04:18
我想这个位置第一步加依赖。然后第二步添加上。那这个我们来加一下。比如说现在我在service YouTube里边的这个con里边,我创建一个类,这个类我给它起个名字就叫red。好狗。这是一个类,然后在类里边呢,加上一些相关的配置,首先在上面咱们先加上两个注解,这注解我们来看一下啊,这两个注解我把依赖先给他手动引读一下,然后大家看第一个注解叫configuration,代表它一个什么。
05:01
是不是一个配置类啊,第二个叫I开始是什么?表示开启这个缓存的处理。然后加上之后在P类中我们加上这么几个方法,我把这方法给各位直接就复制过来,主要是加上里边的这么三个方法。那我们拿过来,然后咱们一个一个来看一下,首先我们看第一个方法,第一个方法中它是干什么的呢?我们写一个艾特B,表示创建一个对象,然后咱们有依赖,注意这个依赖别引入错,是这个开里面这个依赖。包括把这些我们都引进来。然后有之后我们看啊,里边的第一个方法什么意思呢?它就表示自定义你K的一个规则,因为各位知道各位都学过red,如果各位同学对RA还不是特别了解,要求各位去学一下,上硅谷古理学院有详细的瑞教程,然后你学完之后再来学习本节课的内容。
06:05
Redit的结构大家应该知道是不是一个t value的结构就有key,有value,而这个方法是干什么的?就是自定义一个生成K的规则,它的规则中就包含你的包的名字,你的这个类的名字,还有你的方法名字,用它生成一个key,这是一个自定义的一个规则,就咱U儿会用到。然后除了这个方法之外,下面还有第二个方法,大家看一下啊,我也是引入依赖。而这个方法是什么呢?它就表示设置咱们这个叫red come的这么一个规则,因为咱后面操作red向里边放那种,从里边取那种,要用到这个red里,里边就做一些相应的设置,比如说这里边是是它这个相应的一些什么类型转换,序列化等等那种,这是第二个方法,然后除了它之外还有第三个方法叫cash manager,表示缓存的规则。
07:04
比如说缓存中我们缓存数据,数据的这个有效时间是多长,包括一些相关的一些内容,比如说里边的乱码的处理等等,这是我们的第三个方法,而这个类就是咱们一会儿进行ready操作一个类。个位给他知道就可以了,用的时候你把我这个类和方法直接复制使用就可以了,但是你能看懂里面的结构,所以这是我们的第二步,我们创建了一个配置类,它就完成了,然后完成之后下面进入到第三步,第三步怎么做呢?咱要在我们的具体那个就是服务中添加上red,或者说在我们的具体务中加上red。那咱们要加的话,是加到咱们那个叫数据字典中,所以说我来到SS里边,在里边做的第一步,咱先做这个事情。在配置文件中呢,把rabbit路径先给它加上,我们来看一下啊,我们在这个perfect里边加上rabbit这个路径,就是这个路径,然后这red路径给各位说一下,首先第一个各位要掌握RA操作,然后在你的虚拟机中装上这个red,我这个已经装过了,装完之后我现在把它启动一下,默认它是装到了user local的。
08:27
最里边。就是这个位置,然后咱启动写一个server。然后加上配置文件,我的配置文件在ETC里边的RACF,把它就是启动起来了,启动之后咱们查一下它的进程。然后大家看现在是不是启动了,然后咱们通过客户端可以连下这个reddi,就是连接我的C,然后现在我们看目前这里边应该是为空,咱们后面往里面可以放东西,就是通过它的P取它的值,就是P和Y表存储它的结构,所以现在RA我们就提起来了。
09:11
这里边就写上你ready的那个,就是木导服务器的路径,包括它的端口号,包括里面掐二值,默认端口号是6379,当然咱可以改成B的端口号,这个我们就加上了,这是我们的第三步操作,我在里边写下。第三步在我们的那个服务里边。添加上的配置。我们就完成了,然后完成之后,下面我们进入到第四步的,第四步呢,咱就具体用一下这个缓存,因为咱刚才提到我们用的是spring,然后在里边呢,有相关的注解,可以很方便的实现缓存的操作,它的注解有很多,我这里边给大家列了三个最常用的注解,咱们先看一遍,然后咱们一会儿具体使用一下。
10:05
首先大家看第一个主体,这个主体叫cash。然后第一个注解是什么意思呢?给各位来说一下,就是我们用的第一个注解table。这个注理应该是我们用的最多的一个助理,而这注解其实它的功能是最强大的,它可以做什么事情呢?给各位说一下啊,比如说我现在我第一次进行查询的时候,缓存中是不是肯定没有数据啊?他是不是要查数据库,把数据库查完数据之后返回,然后把数据放到缓存中,而第二次再查缓存,缓存中是不是有数据的,可以直接查缓存,而不需要查数据库,而查缓存的好处是什么?是不是提高咱们的查询速度,所以这个开A做的就是这个过程。第一次查缓存,没有数据,查数据库,把数据库数据放到缓存中,第二次再查缓存就能查出数据,而不需要再查数据库,而catch a就是做这个事情。而我刚才说的过程,可以说缓存基本上就是这个流程,先查数据库放到缓存中,第二次接插缓存就不需要再查数据库了。
11:17
这个作业的知道,然后除了这个之外,还有第二个注解叫catch put。这个注解什么意思呢?它一般用在添加上,比如说我们现在加了一条新的数据,那这个数据是可以同步到缓存中去,用这个开铺的。给它存入到指定的患者中去。这个注解各位也都知道。然后除了这个之外,还有第三个注解叫catch,这个注解是什么呢?它表示清空缓存中的内容,比如说咱们删除,比如说我们更新,那缓存数据可以清空,那用这个助理可以做个实现。所以咱们现在把注解给各位做一个说明,那我们下面在咱们的具体方法中给它就使用一下,那我们看怎么用,那我们来看一下啊,首先我们来到CTRL里边。
12:12
在C中呢,我们的第一个方法就是咱们写的第一个查询数据的列表,那这个方法大家看啊,它调的是service,咱们来到service中,我们看到service方法中返回是什么。是不是一个例子机会?这例子集合呢,如果说咱用原始方式处理,大家说怎么做,是不是要放在缓存中了,而第二次赛场是不是查缓存中的数据啊,但是现在不需要这么麻烦,咱们在这个方法上直接加上刚才咱们说那个不解就可以了,就这个叫catch able,我来写一下。Cash able,然后在cash able中,我们有这么两个属性值,一个叫value,一个叫这个key generator,我把这个直接咱就背过来。
13:02
然后这两个什么意思呢?它就表示啊,我现在这粒子集合会放到缓存中,而第二次查直接查缓存反应数据,而这里边生成的就是你那个key的名字,它的key前面是D,后面就是咱们刚才看到的这个规则,根据你的包名,类名和方法名称生成你的key。所以这个就是咱们加的一个缓存的注解,它会把这数据放到咱们的缓存中,另外这里边就是还有一个注解,大家也可以用一下,就这个注解,我把它直接就复制一下啊。比如说我们现在做一个添加操作,或者说做一个修改操作,那我添加之后,我数据库中内容是不是会发生变化了,那我缓存中的内容是不是也会跟着发生变化呀?那这个时候咱们是不是就可以把这个缓存中的数据给它清空一下,让它重新是往里面加呀,因为这个时候里边已经发生变化,虽然就放到这里边,它就表示把这个规则下的缓存内容对它清空,这个o entre等于处就表示清空缓存中的所有内容。
14:14
所以咱们现在把缓存就加上了,主要是这个注解。然后加上之后,咱们下面做个测试,我现在把服务器重新启动一下,咱们来试一下啊。大家看啊,目前的ready的缓存中是什么都没有,一会儿咱们加完之后,里边会多出一些内容,就是咱们缓存到里面的数据,那咱们来测试一下啊。首先服务器启动,然后我到里边,比如现在我做一个刷新。大家看是不是查出数据了,然后刷新之后,我到里边再看一下K星号,大家看。里边多了一个K吧,你注意这个K的规则啊,大家看啊,这个规则就是D com.at硅谷,你注意啊,前面是包名,这是类名,后面是方法名字,所以他把这数据就加到了我们的ready中,Ready里边我们就可以根据这个K得到它的值,这是它给我们生成的一个K,那比如说咱把它的值得到一下,我用个get头。
15:19
然后咱们回戳大家看。这些数据是不是就是缓存到re中那个数据了,而咱们下一次再查的话,那我查的就不是我的数据库,是不是直接查缓存中那种,从缓存中直接就取到这个数据了。所以这样的话,咱就在这个数据字典中添加上了read缓存,我们用的技术就是catch加上red,实现了数据的缓存。所以各位按照我刚才这个步骤,能把这个缓存加到你的项目中去,特别记住这个过程,还有里边我刚才特别提到这个注解到经文内容。
我来说两句