00:00
好,各位同学大家好,我们继续通过上一讲解的内容,我们相信大家对实际动手,按照我们设想的架构图,一步一步的带着大家搭建好了三组三重以及对应的加路由参数杠C,对三组三重的集群进行读写操作。此外,集群的。容灾备份,同机上位,集群的扩容,集群的缩容,全部的相关案例和动手操作均给同学们演示完成并成功调试通过。那么接下来呢,我求求各位同学。你听我讲完没有用的,请一定动动手。记得杨哥讲过c easy dodo hard,知易行难,有些同学已经懒到什么程度啊?自己虚拟机装三个真实的实例,他都不愿意动手,就就这个学习态度哈,麻烦你了,2023年了,疫情也已经过去了,这个时候你混的不好,找不到工作,你不要再说关于疫情,反正疫情是个框嘛,什么都可以往里面装,OK,同学们多多动动手,你听懂,听完一遍你觉得啊,好像听着很很顺啊,都对了,没有用的,亲自动手做一遍,哪怕求求各位了,你照着阳刚的脑图粘,你粘成功一遍,我都算是你交的作业,都算你成功了好不好,各位亲,OK,好,那么人到的差不多了,咱们开工。
01:33
那么接下来啊,各位亲,我们呢,说一下这个机群的常用操作和CS算法的一个简单的一个分析,第一个不在同一个槽位,下面呢,多件操作支持不好,通识占位符等差,那这是什么意思呢?同学们请看我的功能演示,现现在呢,咱们三组相同的集群呢?是现在我们最下面这个搭配啊,已经还是81843652 OK,我们完成这么一个功能,Set k1V1,没问题吧,SK2V2 SK3V3,我相信我一敲出这样的命令,各位亲,没有任何问题,下面的问题是我想取出来这三个T,你可能会说那还不简单,Get k1K2K3不就完了吗?要敲三次,别忘了我们可是学过m get k1K2K3。
02:31
这时候大家请看。诶。你绝对不可能说杨哥讲这个命令有问题,但是为什么这个命令在集群下面就不好使了呢?报了一个crossload槽位,这么请求需求没有对应到相同的槽位,那么在这请同学们要注意。这是个细节。不在同一个槽位下的键值无法使用M开头的。P处理操作命令,或者叫多件操作,我们必须要通过一个括号来定义同一个组的概念,使K中括号内相同的内容建支队放到同一个槽位上去,那么这个时候我们才可以自然槽位是一样的,明白了吧,也就是说现在啊,K1 K2 K3,大家请看449直接跳到6381去了,我们在八五上,所以呢,你要想全部是去取用M命令取不到,那么这时候我们应该怎么办呢?那么比如说啊,我们m set。
03:31
那么K1这个括号里面,你可以写XY,写Z都可以,好,那么假设我就写Z1,那么K2,那么这个就是Z,那么Z2 K3,那么就是Z3。弟兄们O不OK,好,此时他就告诉你。三个T相当于说以前K1K2K3,那对不起,我认为是三个不同的T,但是现在呢,他把它整体打包了,他就认为呢,都存在了8157这一个桃位上,那么现在是不是就是一个坑,就把这条多数据全部处理了,哎,那么同学们请看啊,那么GET2套,那么K1Z,那么K2ZK3Z,大家请看Z1Z2Z3成功取到OK,在在这啊,我们在笔记上我这用的是X,我就是给主要呢错开一点给大家演示XYZ任何一个标识符就行,那么相当于从K1。
04:32
代表加了一个括号,里面有个相同字母的通配标识符,OK,好,这个是一个集群中操作的一个小技巧,那么第二个我们浅谈一下,Red机型中有16384个哈希槽,每个T通过CSC16校验号对16384取模来决定放置到哪个槽里面。集群的每个节点负责一部分的lo。哈西槽位,这个我相信大家已经是非常熟悉了,那么下面我们的问题是,到底这个CRC16它在哪调用的?那杨哥我们只见。
05:07
只闻楼梯响,不见人下来,那这就写了个CR416,那他哪来的呢?那同学们请看一眼啊。首先。如果你分配一个节点完成以后,在red源码安装包里面有个cluster c。这么一个C加加和C语言所写的原文件,它在918行,这就会有个K哈希so槽位,那么在在这儿大家请看能不能理解上面它会有一个通配符这个括号,如果说有,那么就加上,如果说没有,直接就是C16。OK,所以说呢,它底层是由C语言源码的底层CRC调用函数来制成的,那么限于我们本阶段定位的课程是零基础小白。Java大家都还没玩明白呢,那么对于C对应的源码分析CS16算法有兴趣的同学可以下去呢,简单的了解一下,但是呢,大家就知道它的底层调是调C的一个源码来自这么一个方法就够了,这个循环校验这种码的话又是那些补码,砝码,还有多项式的排列组合,把这个搞懂了意义不大,所以呢,我们呢收放自如,在这儿我就不再浪费大家时间过多的展开。
06:27
因为对吧,要读C语言的源码,我们调一下来给大家演示,这个又要浪费两节课的时间,弟兄们呢。网课的话说不定还听不懂。学习效果,吸收效果不大好,所以我们呢,浅尝辄止,OK,所以呢,告诉大家这个CS16公式上写的来自于哪,来自于C语言里面的这个类,下面的这个方法,由它调用底层3416循环校验码,OK,哎,然后呢,算出来你对应的槽位,好,那么这是我们的第二个小知识点,第三一个就是常用命令。
07:01
和一些小小的配置在这儿,根据我的经验,那么有一个配置需要大家了解,叫clu car for coverage,这什么意思呢?现在需要你做一个了断。三除三重,对外提供服务。正常情况,异常情况,MASTER1淡机了一上位,那么现在就变成三组二童好。下面的问题是,如果第一组MASTER1和一,也就是后面升级的这个MASTER1。全部全军覆没了。三组三从变成二组二从了。你是否还要同意继续对外暴露服务,这个就是它的一个集群是否完整才能对外提供服务的一个参数设置,这个呢,在生产上你还是要注意一下,情况如下。它的默认值是yes,它的意思啊,翻译一下就是现在我们的集群架构是三组三从的,那么red我们。
08:06
说好了,三个master平分1638,四个还是曹位。每个master个master的小集群负责1/3个三分天下,那么对应一部分数据,这个呢,它的默认值是yes,意思就是说我们要求集群的完整性。三个都在,我们方可对外提供服务。通常情况,如果这三个小群中任何一个一主一从挂了,你这个集群对外提供数据只有2/3了,那么整个集群是不完整的。那么red默认你写yes的情况下,它是不会对外提供服务的。OK,就说相当于我们认为你的集群已经塌了,哎,捆把的手榴,手榴弹,也许手榴弹还有那么多,但是那根捆他的线已经断了,哎,散装了,如果你的诉求是集群不完整的话,也需要对外服务,那么。带病提拔强行军,那么这个时候请把这个参数设为no,那么这样的话你挂了那个小鸡群是不行的,但是其他的小鸡群仍然可以对外提供服务,有点类似于说你为了保证高可用。
09:11
大哥读一把,三除三从变二除二层,我们先称一下,不能空中停车,不然飞机就解体了,称一把,哎,所以说这个呢,你要想清楚,一般我推荐的是有yes,除非你是极难险重的任务啊,否则的话,这个呢可以用射主的。好,接下来集群上还有两个常用的小命令,带着大家复习一下。第一个就是卡。哎呀,直接说命令吧,这个呢都很简单,就是诶。这个呢,就是看看我们的槽位数字啊,那么假设同学们。我们SK1V1可以写吧,这个叫12706对吧,我一粘贴12706,就是你告诉我现在12706上面。
10:00
就是16384范围以内,它有没有某个坑,是不是被占用还是空闲,那么说白了,假设啊1207没有哪个K落到12707这个坑位里面,所以说是零,所以它的结果很简单,一该槽位被占用。那么如果是啊,抱歉啊,首物如果是什么零,那么这个时候这个笔记给我分配好,顺便给我分配下来了,好,那么该槽位就是。没有占用,OK,也很简单,好。接下来集群的key slo键的名称,它的什么意思呢?该键应该存放在哪个槽位上?哎,这个呢,也是我们cluster常用的一个命令啊cluster,那么假设弟兄们keylo,那这个时候大家请看K1就告诉你应该放在12706这个槽位,哎,其实说白了这就是调用了这个CRC16算法,然后MOD16384,最后给出一个哈希槽位,那么这就是哈希槽位算法的公式一般啊,同学们记着。
11:04
Cluster not,这是一个cluster,然后刚才的t slo OK,还有刚才的cluster,我们的这个。三个这个C开头的,那么是我们集群常见常用的操作命令,请同学们务必熟练掌握,OK,好,那么各位亲爱的同学,我们的集群相关的介绍就给大家说到这,那么后续我们就要引入red,整合我们的spring,也就是我们的spring集成做Java下面的开发,那么请同学们做好准备,好感谢大家的聆听,切记动手做一下案例。第二个。什么是集群?能干些什么?你们的集群拓扑是什么样的?什么叫分片?什么叫哈希槽位?大致的说说OK,好,再次感谢大家。
我来说两句