00:01
各位同学大家好,欢迎继续收看上硅谷视频课程,咱们继续来学习。下面呢给大家来讲解red,一个客户端工具叫做J,就是通过Java来操作red。咱们之前各位同学应该听过一个技术叫做JDBC是通过Java来操作数据库,而J是用Java来操作reddi,它是一个客户端的工具,支持Java源对red进行各种操作,也就是咱们之前演示的各种命令,我们现在通过J都能实现里边的项操作,那这JDS怎么用?下面给各位来做一个详细的演示。那我们来看一下,首先第一步我通过idea先创建一个工程,这个工程呢,我们就直接建一个慰问工程,现在我来快速创建一下。首先它的坐标我给它起个名字,我们叫com.a硅谷,然后这个名字我们叫J_RADEMO把它做创建。
01:13
现在这个工程慰问工程就已经完成了创建,然后创建之后呢,因为咱们要用到JDS,那首先需要引入JD的相关依赖,这个依赖我在课件中已经听出来了,然后咱把依赖就直接复制到我们这个慰问工程的po文件中,把它的依赖咱给他最后引入,那我现在在里边引入一下。首先我加上一个dependence,然后里边加一个dependence,加上我们这个就是red collect里边这个咱用的是3.2.0的版本,现在把这依赖我们就完成了引入这是我们的第一步,然后引入之后呢,咱们下面我在这里边就来建上这么一个。
02:02
就是类,然后通过类来做一个ready的一个测试,那这个类我来做个创建,首先我先建个包,这个包我起名就叫com.at硅谷。点上这个这意思。然后在里边呢,我来创建一个测试类,这个类我起名就叫JD。DEMO1这个测试类我们就创建了,创建之后呢,在里边我就直接写上一个问方法,在问方法中我们来做测试,那怎么测试呢?它的代码很简单,首先第一步咱们需要创建一个GDS的这么一个对象,那我来创建啊,它就叫JD。然后咱们等于谬上一个这个意思在里边呢,我们可以传入有这么两个参数,咱们可以看一下啊,两个参数中我们用到里边的就是这个部分,第一个就是你要访问到你的RA所在的主机的地址,具体说是主机的IP,然后第二个加上你red的端口号,那现在我来加一下。
03:13
我们来看一下我这个主机地址是192.168.44.168,所以我在里边写上我的IP。192.168.44.168,然后第二个加上端口号,我的端口号是6379,把这加上,所以这样的话我们就完成了JD对象创建,它会给我们的IP中的red创建连接,然后创建连接之后,咱下面可以做一个测试,那怎么测试呢?在这Z中有个方法,这个方法。叫做PIN方法,然后在里边呢,它表示就是我们用它如果能连上你的re,它会返一个值,如果不能连上,它会直接报错,那这值,比如说咱们做个输出之前,咱应该做个测试啊,如果你能拼通把一个值是不是这个胖的这个值。
04:09
啊,那现在把它输出一下,所以这就是我们针对JD的一个最简单的测试,所以各位把这个能给他快速写出来,然后这个在连通过程中呢,有个小问题给各位再强调一下,咱之前曾经说过啊,就是我们在讲这个RA的配置文件中曾经特别提到过,给各位再来说一遍。首先第一个就是你找到配置文件中找这个B的这个部分,把它需要先注掉,如果你不注掉,那只能你的本机访问,你通过IP是不能防盗的,这是第一个,然后第二个呢,你需要把里面这个保护模式改成no,默认是yes yes的话,它也不能通过远程访问,只能本地访问,所以咱需要改两值,第一个band注调,第二个改成no,然后改完之后你需要把你的re字符给它重启一下。
05:04
怎么重启,咱们演示过第一种方式,你可以直接刹车档停止,然后再启动,第二个找到进程用Q命令杀掉,然后再启动,咱都说过不再重复了,然后我现在应该已经都已经重启了,也做了修改,那现在咱们把这个代码执行一下,我们看一下它的效果是什么样的。那现在我来执行,然后咱们看它的输出是什么结果,我们等他执行。然后大家看啊,它最终结果告诉我们怎么样,说目前这里边说你这个连接超时了,那我们看一下啊,这是什么问题造成的,192.168.44.168连的应该是我里边的这个就是地址168,然后它里边都有耗时6379,它告诉我们现在就是连接超时,那为什么连接超时呢?咱也可以看一下啊,第一个我那个值应该做了修改,那咱检查一下啊,在这个。
06:05
ETC下边的right.cf然后找到我们里边那个位置,咱们找一下,应该就是在我们的network中第一个band应该我已经。注掉了,然后第二个有一个保护模式,咱是不是改成了no,这个应该都做了修改,那这个应该是没有问题,那问题在哪里呢?给大家说一下啊,因为咱们现在我是要连接我这个虚拟机中的linu系统,而虚拟机中是不是有它的防火墙啊,所以咱们检查一下这个防火墙是否关闭,如果你不关闭肯定也连不上,那我们来看一下哈。System ctl加个S,然后加一个叫大家看。问题就在这里,我的防火墙目前是不是一个打开状态呀,咱们需要把防火墙给它关掉就可以了,那我给它关掉一下啊,我加个s stop关掉防火墙,然后咱们再看目前应该关闭了,或者说你把防火墙永久关掉也是可以的,现在我们先临时关一下,然后这样的话再测试应该就可以了,所以各位注意这个问题啊,以后你遇到当你发现你这里连不上,你要看一下第一个re,配置文件是否做了修改,然后第二个你Linux系统的防火墙是否进行了关闭,目前我们都关掉了,配置文件也改了,然后最后我们再做个测试,看一下最终的效果是什么样的。
07:36
然后大家看返回值是不是一个胖,证明咱目前就是与RA正常连通上了。这是我们演示的,就是第一个测试,各位注意,我刚才演示这个问题,如果你遇到能给他快速解决出来,然后这个测试之后呢,咱们下面做的事情是什么?就是通过JDS来实现里边的具体操作,这一操作就是咱们之前那些类型,比如说操作key,操作字符串,操作你的list set,哈希z set等等,也就是咱们之前用命令的部分,在JD中都能进行相应的操作,那下面给各位我就快速演示几个这么几个基本操作,那我们来测试一下哈。
08:21
我在里边写下。首先比如在里边呢,为了方便我就这么做啊,我就写这个单元测试的方法了,咱们先测试第一个,比如说第一个我来操作这个key的部分。那我们来一个。单元测试加上一个public,我叫DEMO1。然后在里边把单元测试这个依赖给它引入进来啊,咱用这个依赖。然后有之后呢,在里边第一部分还是这个操作,我就不给他提取工具类了,咱就做一个简单测试了啊,当然后面这过程中肯定会加上那个,就是连接池的部分,咱们先做检测试,然后这个写完之后大家看啊,在JD子里边呢,有各种方法,比如说咱们看第一个方法叫kiss。
09:10
咱们在命令中用过我加个K,然后加个星号,是不是可以得到里边的所有的key,而它返回的是一个set集合,咱们可以把S集合做一个变历,然后做个显示,那比如说我把S集快速变历下啊。我快速写下,咱就来一个增强负循环了。然后里边来一个string key,加上一个叫kiss,最终把这个key我们做一个输出,所以这就是得到中的所有的K用这个。Kiss这个方法做到,那这个得到之后,我们把它执行一下,咱们可以看一下它目前的效果是怎么样,看里边的所有key能不能得到。然后大家看这K是不是得到了,就咱们之前加的这些数据啊,所以这是里边呢,就是第一部分啊,我们做了一个操作,然后这个做到之后咱再往下看啊,比如现在我们向re中加入数据,可以用这个set方法,包括判断是否存在,包括判它的过期时间,或者说获取它里边的值,这些在里边都有对应的这些方法,那咱们就来测试一个啊。
10:24
比如我现在,呃,我这么做啊,为了明显,我把这个red里边内容先给它清空一下。USR local b加上一个RA,在然后咱们加上一个flash DB,把它先清空一下,然后清空之后,比如我现在做第一个操作,就向里边添加一个数据,咱用这个ded里边这个set方法,里边加入它的key和value,这是一个字符串,那这个K呢,比如说我就叫name,然后它的值我们叫这个Lucy。
11:02
这样的话,把这数据我们就加进去了,然后交完之后咱们可以做一个获取,我用JD里边这个get方法,根据它的K,然后把这个值我们可以把它取到,那取到之后咱们可以把它做一个输出内幕啊,当然里边还有其他方法,我就不一一演示了,比如说里边有这个方法,咱看这个方法啊。我们来写一下,就这个叫TTL能查看你当前还有多长时间,就是过期了,还有一个叫一个exists,判断key是否存在等等方法,另外还有一个叫disappear,设置它的过去时间,这些都是我们刚才演示方法,咱就演示几个最基础的,所以现在这是针对K的操作,那咱们把它执行一下啊,看一下它的效果是什么样的。那我们来执行,大家看一下啊,首先。Lucy应该设进去了,因为我取到了,然后这里边所有key,就是我们这个name,所以这是我们的第一个操作,针对这的操作。
12:06
给个位就演示完成了,然后演示之后大家再来看啊,比如说我们操作字符串的类型,咱们除了set方法之外,还一个方法叫m set,你可以同时加入多个key,多个value流,那这个方法给各位也是来演示一下,比如现在我们在里边就是来设置多个key和它的Y流,咱们用AC里边这个叫m set,里面加入多个k do y6,比如说我里面的第一个K,我就叫K1。它的Y表咱们就叫V1,然后我加入第二个叫K2,它的Y表我们就叫V2,目前向里边就加入两个值,然后咱们可以把这值给它取一下,用里面这个方法叫m get头传入它的多个K,就是一个K1,一个叫K2,咱们现在把里面的值就可以得到,它最终返回是一个这么一个历次集合,这个集合我就直接做个输出了啊,M盖头,所以这是我们操作字符串类型这些方法。
13:16
把它执行一下,咱看一下效果啊。然后各位看啊,我这个V1V2是不是取到了,证明咱这个值肯定也是给他加进去了,所以这是针对字符串操作,然后除了字符串操作之外,在里边还有这个针对list操作,包括针对set,还有这个哈希以及这个z set操作,那这几个操作呢,每个操作我给各位演示一个基本方法。然后各位感受一下这个JT的操作,也就是咱们之前用命令行方式写那些命令,在JT中都有对的方法,都能进行实现,那咱下面我们就来用一下这个就是list这个类型的操作,那我们来测试一下啊,看这个怎么做。
14:02
那我来写一下啊。首先我在里边呢,再来添加一个方法,这个方法是操作我们这个,就是字符串这么一个操作,那我再来一个方法,这个方法呢,咱们叫DEMO,二来操作我们这个。例子集合,那咱们看这怎么做啊,首先第一步肯定是不变的,然后第二步呢,比如我向里边加入数据,这里边这个方法更应该记得啊,叫这个l push,或者说这个叫r push,就是从左或者从右进行添加,那我们来一个l push,然后里边呢,加入它的K,还有它的Y表,那这个K呢,比如说我们就加一个K,咱就叫这个。呃,就叫PE,然后它的Y6值我们就加入。多个值啊,咱们加入多个,比如这个值,我就写上这么一个值,比如第一个Lucy。第二个麦,第三个解克,这样的话向里边就加入多值,注意啊,这是从左加的,这个特点咱们应该提到过,这里不再重复了啊,然后这个交完之后,咱们可以从里面把值取出来,用这个方法叫l run值,然后取的话,根据它的K我们叫K1,然后取的话有它的范围,咱写个零到负一,就表示把里面的所有值都给它取出来,然后最终返回的是一个。
15:29
历史集合,咱把这集合最终也是做一个输出。就是Y64,所以这是我们操作例子的这么一个基本的方法,那咱们来测试一下啊,大家看效果,这值是不是取到了,证明咱们把它已经加到了read中啊,这是例的部分,当然还有其他方法,我就不一一演示了,因为做法都是一样的,然后咱们再看这个set,那我通过set往里边,我们也是给它加一个数据,然后给它取下这个数据,咱们看下这个特点是怎么样的。
16:05
那我来测试啊。现在呢,我再来创建一个方法,这个方法我们叫DEMO3,然后他来操作我们这个。再次集合,那咱们看怎么做啊,第一步不变,还是new这个对象,然后第二步咱们调用A里边这个方法叫s sadd,往里边加入数据,因为它是一个sat集合嘛,那比如它的P我就叫内,然后它的Y6值,比如我们写入几个值,然后咱们来一个Lucy啊,来一个解扣,但是S咱们说过,如果你加重复的话,它里边啊会有一些相关的操作,因为它里边不能有重复元素啊,之前都说到过添加,我们添加,添加之后咱们把值给它取一下,取的话呢,在里边有个方法,这个方法叫s members,根据key把它的值能取到,包括s rem能删除里面那种,咱就直接把这值给它取下就可以了。
17:06
Members加上这个name。最终返回的是一个set集合,然后咱们把这个set集合给它输出一下就可以了,那现在把它执行一下,咱们看一下啊。这里边啊,他报了一个错,咱们看他报的错是什么,我们看一下,首先就这里边啊,它的特点就是他说里边我们操作这个K里边这个值,它有一个问题,那咱给他检查一下啊,看问题到底出在什么地方,我们来测试一下啊。也就是说呢,目前呢,他告诉我们说这么加值不对,那比如说咱给他改一下,应该是方法用的不对啊,我们给他加入一个值,比如这个内幕中我们加入一个Lucy,然后比如说咱们再加入一个Mary,然后现在把它我们再执行一下,咱们再看一下目前的效果。
18:01
啊,这里边啊,还是报这个错,那我们看问题在哪里啊,咱们再给他看一下啊,可能问题到底出现什么地方。好,咱们看啊,他说这个K,它这个类型等等有问题,那我们来看一下啊,问题在哪里,咱们往下看一下啊,大家注意啊,我刚才加的这个K是不是有name的,而我现在加这个set是不是还是用name,它的K是不是一样的,所以他告诉你说这个类型不对,你对name中有Lucy,然后你又加了这么一个值,所以他目前报的错是在这里,那咱为了明确,把这个K的名字给他改一下,比如说改成叫。Names。啊,Names,当然你可以加一个值或者加多个值都是可以的,然后现在我们再做一个对应测试,咱看一下最终的结果,现在是不是对了,问题就是你的key名字跟之前冲突了,之前有这名字类型不一致,所以他报错了,这是啊,我们找这个问题,就刚才测试中这些内容没有删掉,所以这是针对set集合的操作,然后塞在里边,还有删除,咱们根据key把它删掉就可以了。
19:06
这个给各位就演示完成了,然后演示之后呢,下面还有一个操作叫做哈希,那哈希它里边的内容,咱也可以用它做个操作,比如说往里边咱们放个值,然后从里边取个值等等操作,那我们就演示一个操作了,给他完成一下就可以了,那我们来试一下啊,针对哈希的这个操作。现在把这个方法我再复制一份操作哈希。这个我们叫代四,然后在里边呢,我们就是调用JD4里边这个方法来操作哈希,而哈希操作方法它叫做h set,在里边我们可以传入多个值啊,H set首先你看啊,它的值中其实可以有两种形式,第一种形式你可以传这个F的Y6的关系,第二个可以直接传一个map集合都是可以的,比如说我现在咱就来一个K,这个K呢,我就叫这个。
20:06
比如叫users。就叫它啊,然后里边有个field field呢,比如说我叫这个H,然后它的值我叫20,这样的话呢,我们就通过这个h set,像这个哈希里边添加上了呢,这么一个值,用这个我们可以做一个实现啊,就是里边的这么一个操作啊,比如这个啊,咱也写成一个字符串啊,这么一个操作,然后这个加上之后,咱通过ad从里边把值可以给它取下,叫做h get,然后里边传入两个,第一个就是你的K,第二个就是你这个field,我们叫H值,这样的话呢,就可以把最终这个20这个值给它就能取到,那咱们给它取到之后,我们做一个输出h get。这是针对哈希的一个操作。
21:00
咱们把它测试一下,看一下效果20是不是取到了啊,所以这个就也是完成了,包括你在里边呢,可以直接传个map克集合,跟上面效果类似,咱可以用这个HM set HM get往里边设置值,从里边取值,效果都是类似的,这是关于哈希操作。然后除了这个之外,还有最后一个就是里面这个set,那给大家最后来演示一下,就是我们这几种数据类型中的最后一个z set这个操作。这里边我起个名字叫DEMO,然后z set中呢,咱们也是往里边加数据,我们用这个叫ZA,然后加数据,在数据中它要传入两,就是三问值,第一个K,第二个分数,第三个就是你最终那个Y6值,那比如说我们来就是给他传一下啊,假如说里边的就是第一个啊,咱传一个也就是这个啊,我们就叫。
22:03
China啊这个国家,然后第二个传一个分数,比如这个分数呢,我们传一个这个100。然后第三个传个值,比如传这个就是。上海啊,现在我们给它做一个传递,而它的值里边的第二个值其实应该是一个W型啊,所以咱加个D,这样的话往里边就放值,然后放上值之后,咱给它可以给它取出来,那怎么取用这个方法叫Z润值加上零到负一,把这值就能够最终取出来。那咱们来取一下啊,加上。China,然后加上零到负一,最终返回到就是我们这个结果,然后咱们把结果最终给它就做一个输出,这是针对z set一个操作,然后最后咱们把它执行一下,看一下最终结果上海是不得到了,所以大家看啊,我刚才呢,把这组中针对咱们几种常用数据类型的操作给各位同学快速演示了一遍,当然里边还有更多方法,咱之前用命令行做的这些操作,在这字里边都有更多方法,各位可以按照我们命令行那些方法到里边一找到,然后把它都能给它写出来,我这里边把重点方法给各位都演示了一遍,所以这些是针对A,它的操作就是用Java来操作red。
我来说两句