redis集群
是什么
能干吗
集群算法-分片-槽位slot
redis集群的槽位slot
redis集群的分片
分片和槽位的优势
槽位映射的解决方案
上面的三个方案分别对应了小厂 中厂 大厂
哈希槽取余分区
缺点
一致性哈希算法分区
小总结
哈希槽分区
经典面试题
这里说的redis是ap而不是cp的 他没有强一致性
集群环境案例步骤
一配置
185虚拟机上有6381和6382
红字分别对应 集群是否打开 集群的配置文件 集群的访问和超时时间
启动六台redis主机实例
多了个中括号 告诉你这个是以集群方式启动的后台
语句后面的ip对应着 每台虚拟机中的ip
配置完成之后就产生了 这个东东
一定要写6381 不然就默认为6379
这边6381是master 但是他的从机slave是6384 我们刚才的设计理念是 81下的从机应该是82
实际情况是
我们可以使用cluster nodes 来查看集群节点之间的关系
二读写
set k1让去6385 set k2就能写 去了6385了能set k1 但是k2让去6381
在6381的时候通过算法得到你这个k1的槽位是12706要去找6385
在6385的时候通过算法得到你这个k2的槽位是449要去找6381
为什么报错
如何解决
退出之后重新连接 在连接的时候后面要加上一个-c
这里有一个 redirected相当于就是一个重定向
三主从容错切换迁移案例
四主从扩容案例
这里面的引路人就相当于 内推 换一个master也ok
这边下面他会问你 你想给他多少槽位 原来是三个槽位 就是16384/3 现在变为四个就是填16384/4得到的结果为4096
问你谁想要接收这4096个槽位 就是把m6387那的那个id复制过来 也就是那个新加槽的id
最后再写all
这样他就会重新洗牌分配槽号
五主从缩容案例
先获得6388的节点id
从集群中将4号从节点6388删除
集群常用操作命令和CRC16算法分析
集群中每个节点只有整个数据的一部分