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算法分析






集群中每个节点只有整个数据的一部分



















