00:01
各位同学大家好,刚才呢,咱们搭建了redis的集群,包括咱们通过这个集群方式也连上了redis集群,包括看到里边的基本信息,那咱们下面的继续往下给大家讲解,下面咱们说什么呢?咱们看一下我的课件中,就是里边的这部分ready呢?Classlu是如何分配这六个节点的?刚才咱们提到了啊,我这里写到一个集群中的至少有三个主节点,而咱们刚才在执行命令中有一个一,不知各位是否记得啊,刚才我们讲到它就表示以最简单的方式分配这六个节点,那怎么分配呢?也就是一个主节点,一个从节点,然后一共有三组,当然在分配中啊,有一个原则希望各位特别注意啊,我这里写到就这个原则。给大家复制过来,咱们来看一下啊,里面这个原则是怎么样的,或者说他是怎么说的。
01:01
然后大家看的啊,这里写到说咱们分配原则就是尽量保证每个主数据库运行在不同的IP中,每个存库和主库在不在同一个IP地址上,那什么意思呢?给大家说明啊,因为咱们现在啊只是一个模拟效果,在实际中咱们的每台radius是不是应该是在我们的不同的这个力度系统中去。比如我现在这是三个这个主服务器啊,比如这是一个主,后面也都是主服务器,咱有三台主服务器,而原则是什么?就是我的第一台主服器,比如说我在这个机器是这个,假如说啊是192.168.1.1,那你第二台主服器就不能还在基术中,得要在不同的IP地址中,比如我在1.2中,比如说这个我在1.3中,就让他们在不同的服务器中,为什么这么做呢?假如我三部主机都在一台服务器中,我这服务器就是这个linu系统挂掉了,那我现在服务器是不是全挂了,所以这肯定不对。另外还有一个原则,咱的存库也是尽量不要在一台主机上。
02:10
比如说这里边有三个这个存服务器,比如这是一个存服务器,后面也都是这个存服务器,那它的特点就是比如说我这台主机有一个从,那这个从呢,咱也尽量跟它不在一机器上,比如说我这个重复器,假如说在192.168.1.11上,跟它不要在一台机上,为什么这么做呢?应该很好理解,因为我主挂掉了,从是马上成为主要,如果你在一台机上,比如我这机器就挂了,那我从没法重为主吧,你的系统就挂掉了,所以咱们在不同的这个IP地址中,保证我这个机器的高可用,当我一台机器挂掉了,其他的依然能提供服务,所以这是一个分配的基本原则,各位把它知道啊,这是我们提到的。
03:00
然后这个提到之后呢,我们继续往下看啊,下面有个东西叫slos,这是什么呢?大家注意啊,刚才咱们在搭建集群中,我们曾经记录一个值,就是这个值叫16384RO,各位是否记得啊,16384,而RO是什么呢?给大家来解释一下啊,这个词呢,翻译过来叫做插槽,什么叫插槽呢?这个词说的太官方了,说的通俗点啊,就好比说我们现在啊,比如说说的比较通俗点,我们有很多的洞,每个洞里边是不是能放东西啊,好比说插槽,插槽里边是不是能插入东西,这就叫插槽的概念,好比说就是有很多的洞,洞里边能放很多东西。然后这个插槽什么意思呢?给大家解释一下啊,就是一个ready集群会包含16384个插槽,而数据库中的每个键都属于这个16384插槽中的其中的一个,而这里边咱们在添加的时候,集群使用一个就是公式来计算你的K属于哪个插槽,然后在里边做操作。
04:08
这是关于它的一个描述,那什么意思呢?给大家说的更通俗点啊,比如我现在这里写的就是一个瑞集训中呢,是包含这个叫16384个,这个叫做插槽。差槽理解为呢,就类似于我们说那个动,而这里边其实它的范围具体说是从那个零到这个16383啊,从零开始吧,最终一共有16484个,而插槽什么意思呢?大家注意啊,比如我现在啊,有三台这个red主机,就这是第一台,这是第二台,这是第三台,咱们有三台主机,我在里面画一下,这是第一台主机。然后这个是第二台主机,这是第三台主机,而每台主机中是这个范围中的一部分,那咱看一下啊,刚才咱们看过这个就是信息大家往后看,呃,我给它拉出来啊,就这里你看到啊,首先我们里边的就是637有主机,它的超造范围是零到5460,这是它一范围,也就是说在这里边它就存这个范围中的值零到5460,然后我们再看第二个,第二个插槽呢,这里是5461~10922,就是这个地方,我给它拿过来,然后里边有第三个主,第三个主的插槽范围是10923~16383,因为它最大就是16383,只从零开始,一共有16384个插槽,所以这是里边的范围,第一个主它是这个范围,第二个主是这个范围,第三个是这个范围。
05:52
那这插槽到底是干什么的,给大家强调啊,比如说我现在啊,我像ready中的set一个值,假如说啊,我这个值的K,比如说我叫这个啊,咱就叫K1,它的值我就叫Y61,那这个时候这个添加它会怎么做呢?给各位说过程啊,因为大家注意我目前里边是不是有个K啊,这K的名字是不是叫K1啊,所以它的做法就是拿着K一来做个计算,计算一下这个K1。
06:26
它里边所在的这个插槽,它的那个数就是所在的这个插槽,那这个啊,我们来写一下。所在的。这个插槽,比如说根据K计算它的插槽,假如说是这个100,那100是不是在第一个主范围,那就像这里边加入你的这个K和它的值,假如说这个插槽它的这个计算的值是这个6万,就是6000啊,比如6万,6万应该在这里,那这里边它就是在这里边加入你的数据,就根据你的K计算插槽,然后像这个插槽位置中加入你的数据,这是它里边的特点,包括各位看我的课件中啊,刚才我提到的。
07:10
急需使用一个就是固定的一个算法,就是它本身一个算法,通过算法计算你的K属于哪个槽,然后像这槽里边加入你的数据,当然这个槽呢,它可能在我们的第一个集群中,就是第一个组里边,可能在第二组里边,可能在第三组里边,它会帮我们做这个切换。这个就是关于插槽的概念,所以插槽其实主要就是一个目的,大家想一下什么目的,是不是就把我们这个值平均分担到我这个不同的这个集群的主力中去,主要做这操作,让他平均分担的压力,比如说我这KK1可能在第一个,K2可能在第二个,K3可能还在第一个,P4可能放到第三个啊,不一定根据它来做计算,所以这就是插槽率概念,各位把它要知道啊,咱们把它做了一个解释,然后这里写到每个部分有它不同的范围。
08:03
那这个说完之后呢,下面呢,给各位我来做一个简单演示,咱们来感受一下里边的过程,那我来演示一下啊,咱们演示给大家说一下啊,比如现在我先给他来一个可粒,大家注意啊,咱们现在是不是用6379这个进行连接的,因为咱专业集群特点就是无中心化,你用任何一台都可以作为集群的这么一个就是入口,那比如现在我在这里边呢,我来做个操作,我向这里边加数据,我们来一个set k1V1,然后咱们回车,大家看这特点啊,不是各位是否能看懂这句话什么意思啊。你注意就是它现在呢,K1是我的KV是值,然后他根据K1计算了插槽,但是它得到插槽数是这个值叫12706,当然各位注意啊,127乘六在6379中为这个范围嘛,所以它的范围是不是到了我里边的就是这个地方,就是6381这里边去,你看这个范围,所以它怎么做就切换到6381中,然后往里边加数据,你看现在是不是到氯酸8U,就是咱之前举的例子给大家啊,我可以再说一遍啊,这个过程怎么样?
09:20
比如现在我们有一个集群,假如说就是三台主机,当我进入的时候,我可能是从这个位置进入,当我在操作,可能这个操作呀,不是他做的事情,那怎么做,他交给谁去做,交给谁,比如是由他做的,那切换给他,由他完成,假如说也不是他做的,那切换给这个让他完成,或者说再去切换,因为他们互相可以进行连通,互相进行切换,这就是我们演一个效果,因为目前K1嘛,他不是6379图的事情,所以他就希望给6381,由他去做事情,根据插槽来决定,所以这是第一个值。比如说我们再试一个值啊。
10:01
SK2不一样,回车你看啊,现在它是不是又回到6375中了,这个计算的插槽值是449,它是在我们的这个范围啊,所以这是关于我们这个插槽的一个概念,大家把这个好好理解一下啊,然后这个说完之后咱们再来看啊,大家注意啊,各位可以考虑一个问题,我现在加的时候呢,是根据K的值来计算你的插槽的这个范围,然后往里边加值。那比如说我现在啊,我想同时加入多个值,也就是多个K,多个value,那大家想一下我们可以加进去吗?一个肯定是可以的,但是我加多个,那咱们来试一下啊,比如来一个m set啊,比如这个值我就叫内,这是它的K。然后值咱们叫Lucy,再来一个K,我叫A值,它的值叫20,大家看用m side,咱是不是加了两部分KY6 KY6,或者你可以加更多,比如再来一个啊,什么address,就叫这个China,目前咱们加了三个T,三个value,现在我一回戳大家看。
11:09
他是报错了,他说你现在啊,这里边不能接收到,就是你多个这个K和Y6值,因为它没法计算你的插槽,这里边有多个,你没法进行添加,所以这么做是不可以的,但有同学说我现在啊,就想去加入多个值,那怎么做呢?给各位说一下啊,这里边这个过程稍微麻烦点,就是咱们需要啊,把这些值呢分成一组,用组的形式进行操作,什么叫分成一组呢?比如说我现在name age address是不是都属于我的人员信息啊,我把它这个分成一组,这个组的名字,比如我起名叫user user,就好比说是咱的key,他对于这个组的名字计算插头做添加,那这怎么做,给大家写下啊,做法很简单,咱们来一个M赛头。Name name后面呢,加上一个大括号,里边给它起个组的名字,比如我叫USR,这名字随便起啊,比如大家来Lucy,来第二个age。
12:10
再来个大括号,A呢,也属于咱们的右侧这个组,然后咱们加个20,包括我的dress都一样,所以大家看里边的。这句话我给各位截过来啊,这就表示呢,像这个里边加入多个纸,而它的特点就是现在我这里边是不是这个name也好,Age也好,都属于这个user吧,User就是我们的组的名字,然后他在计算插槽的话,怎么算,不是根据name,不是根据位置,根据右侧这个组的名字计算插槽,然后做添加,因为你组都是一个组嘛,所以这是它的这么一个操作,那咱们你说现在你看啊。它计算的user色这个组名的插槽是5474,然后它就切换到了6380这台服务器中进行操作,所以这是我们演示的如何加入对制操作,各位把这个知道这咱们就完成了啊,然后完成之后呢,在集群中呢,还有另外几个操作给大家快速演示一下啊,这用的不多,咱们演示一下来看第一个啊,就是计算你的K,它那个插槽值是什么,那我们来算一下啊,咱看这个命理啊,我写一下就这个。
13:26
Cluster加上后面这么一个值啊,这个值我们叫就是这个叫做kiss lot,然后写一下啊,叫kiss lot,然后加上你的那个K,这个K呢,比如说我们写一个K,咱叫这个K1,然后大家看K1的插槽值是这个12T乘六,把这个得到了,所以这是第一个命令,然后我们看第二个啊,第二个是什么呢?就是计算你这个插槽值里边有几个key,或者说有几个键,用这个叫count key inlo。
14:02
那咱们也是试一下这个特点啊,我来试一下。Cluster叫kiss啊,咱们看这个命令啊,应该叫这个啊,Can kiss。Kiss in。Slots。Lo应该是这个命令啊,应该没写错啊inlo,然后加上一个就是插槽的这么一个值。比如这个值我写一个叫12706,然后咱们回车,大家注意啊,里面有个问题,1276中,咱刚才是不是加了值叫V啊,但是这么看,它告诉我们等于零,说里边没有值。那大家说这为什么,大家可以想一下,为什么是零啊,这值明明有,为什么咱们显不出来呀,所以大家注意啊,我们之前的这个就是。你看啊,1276它加的话是不是在这个6381服务器中加的,而你现在看的话,你是不是在6380里边看,所以你注意啊,6380只能看自己插槽范围中的这个P的值,而别的插槽看不到,6380的范围应该是这个范围5461~16922,而我这个范围超出范围,所以他就不能看到。
15:20
这各位应该能听懂啊,只能看自己插槽中的值,别的插头它是看不到的,那比如说我们看一个自己的,咱们看一个啊,比如现在这里边我们来找一个啊,咱看它里边有数据部分,呃,那比如说我这么做啊,咱先。比如现在啊,我就直接咱先加一个值啊,咱们给它切换一下,比如我叫K3。V3啊,现在你看啊,到了6379中,然后我现在呢,比如说我在6379中,咱们来做一个操作啊,咱看里边啊,6379应该是里边的,呃,这个值应该还是6380啊,咱找一个啊,比如说我们算一个值。
16:01
好,咱们看啊,应该是在这个位置啊,之前咱加这个K2是449,所以大家根据449来做个计算啊,这应该是在6379中,我们加一个叫449,然后回车,大家看值是不是一样,也就是只能查看自己这个插槽中的值,别的插槽中你是看不到的啊,所以这是一个命令,大家知道一下哈,但你发现这命令是不是挺麻烦的,还要找到自己插槽才能查看,别的插槽不能看啊,这是我们第二个,然后里边还有下一个啊,这个用的不多了啊,给大家也演示一下啊,它是怎么做呢?返回你的插头中里边这个键的这个数量,比如这个数量的值,比如我们现在在这个插头中返回十个这里边的数量,那咱们来演示一下啊,那比如说我们现在就来做一下。咱们现在比如说我就先还是在这个6379中啊,咱直接操作啊。这个名字叫这个get kiss。
17:03
1SLOT这里边比如说我还加一个叫449,再加个一,现在把里边这个T是不是反映出来了,它的这个因为只有一个嘛,它的名字就叫K2,好,所以这是里边关于这个集群中插槽中基本操作,各位把这个知道就可以了,这咱们就做这个说明,然后这个说完之后啊,咱们现在就把集中的基本命令就说完了,说完之后呢,咱往下看啊,下面有个东西叫做故障恢复。什么叫故障恢复呢?比如说现在我有这个一主一从,一主一从是不是有三组,当我某台主机挂掉之后,那我的从机是不是应该能够直接替换主机成为主服务器提供服务?所以咱们就来演示一下这个故障恢复这个效果,看它是怎么进行恢复的。那咱们怎么演示呢?比如我现在啊,咱们就来到这里边,我们就让这台主机它先停掉,比如我们现在是在6379中,那我现在呢,我就让这个服务器给他先停掉,比如咱们来一个杀到,然后咱们做操作啊,那比如现在我来一个。
18:13
杀特大,让这个6379先停掉,然后停掉之后我们现在比如说我再连下我这个服啊,那我们给他就是先连上啊,咱们用这个red杠再Y。杠C。杠T,然后加上我们那多口号,就咱用这个6380先给它连一下啊,连一下之后呢,咱们来看一下我当前集群的一个状态,状态怎么查看,刚才说过了,用这个cluster nodes,我们做个查看,那我来查看一下啊。Nots,咱们看一下目前的情况是怎么样的啊,大家注意看啊,刚才我把6379给它是不是挂掉了,然后咱们看目前情况啊,首先你看这里边6379怎么样,是不是fail,他是不是挂掉了,而他挂掉之后咱们看啊,它的替代者是谁,是这个是六三啊,就这个啊,6389是作为他替代者,也是现在三台主机还是这个。
19:18
8081,但是七九挂掉了,七九挂掉之后,八九马上升为主机,是不是继续提供我们的服务。所以这个啊,是我们看到的这么一个特点,那现在问各位啊,比如我现在啊6379服务,如果说他在启用起来之后会怎么样,大家想一下会怎么样,它是不是会成为八九的从机啊,因为八九成为主机,它启用之后就要成为他的小弟了啊,那这里边比如我们现在把这个给它启动一下哈,我再重新打开一个这么一个终端。那我们给他启动一下啊,啊,比如说为了方便啊,我们还是进入到这个买。
20:00
里边。啊,My red里边,然后里边我们启动RA-server,加上里边这个配置文件啊,这配置文件应该叫做red杠啊,应该叫red的这个6379,.comig咱们现在把它启动,然后启动之后到集群中再看一下目前的一个状况是怎么样的,大家看到啊,应该在这个地方啊,就这里边。我们看到啊,6379启动了,但是他是谁是不从击啊,它就是我们这个6389的统击,咱看ID啊,这个6389ID是E16 6379是不是也是E19,所以这是它的一个从击,所以这是我们关于集群恢复的一个特点,这个一各位就也是完成了,然后咱们在总结遍这个特点啊,什么特点我再说一遍,比如现在我在操作中啊,我这样给大家画个图,再来说一下啊,比如我在操作中,里边有三个主节点,每个主键下边有它的。
21:05
这个从节点,比如我现在啊,某台这个主机挂掉了,比如这个挂掉了。那挂掉之后呢,我的从机马上会成为我这个主机,然后提供服务,但如果说你这个之前这个挂掉主机在启动之后,它会怎么做,会作为当前这个主机一个从机,然后提供相应的操作,所以这是一个叫作故障恢复一个特点,各位把这知道啊,在这个我们做了一个说明,然后这个说完之后,咱继续往下看啊,下面还有一个特点,什么特点呢?说明一下。那大家也可以考虑一下啊,比如我现在啊,我这个基金中的这部分。主机和从机都挂掉。那你说都挂掉之后,我这集群还能够正常听书吗?就是我整个这个主句从句这部分都挂掉了。比如这一台机器啊,里边全挂掉了,那你说目前我这集群还能提供服务吗?大家想一下可不可以啊?给各位说明啊,这可不可以呢?不一定根据你的配置决定什么配置呢?在配置文件中有这么一配置,叫卡的require for这么一个配置,如果这个值是E,那会什么效果?当你某一个插槽段就是某一断场,比如某一个主从挂掉之后,那我整个集群全挂掉,不能提供服务,但是如果这个只是no,当你某一段插头挂掉之后,只是该段不能提供服务,其他插槽依然停供服务。比如刚才我们看到的啊,当你设置成yes,我这挂掉,整个集群全挂掉,不能提供服务,而你是no,当我这个挂掉之后,我其他插头依然能提服务,只是这个插槽不能提服务了。
22:50
所以这部分根据我们的配置来决定它的特点,这个给各位做一个说明,所以咱们现在就把re的集群部分给各位就说完了,主要就是里边的这个特点,然后说完之后呢,其实咱们通过Java也能去操作这个位粒,这个过程就比较简单了啊,一会儿给大家做演示,那我把这部分给各位,我再总结一遍啊,首先第一部分要各位掌握什么是集群,集群等解决什么问题,然后第二个你能够按照我刚才的过程搭建出一个集群,包括里边这个流程我不再重复了,刚才我们都演示过了。
23:30
然后搭建集群之后,你能看到里边这些信息,包括下一个内容,你要理解这个插槽的概念,包括插槽的作用,它里边就是怎么加数据,怎么来这里操作。另外故障恢复特点各位要知道,比如我这个主从中主机挂掉了,从机会提升为主机,而你的挂掉的主机在启用之后会作为从机提供服务。而这里边我的主从都挂掉之后,根据配置决定,如果这个配置是yes,那整个集群都挂掉,如果配置是no,只是该段插槽不能提供相关服务,而其他插槽部分依然呢提供服务。所以这是关于我们说到的ready集群中的相关内容。
我来说两句