Redis集群是一个由多个主从节点群组成的分布式服务集群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单。redis集群的运用主要是针对海量数据+高并发+高可用的场景。
创建redis集群
1.选择其中任意一台redis进入容器
1 | 命令:docker exec -it redis-6370 /bin/bash |
2.创建集群
命令:redis-cli –cluster create –cluster-replicas 1 -a redis密码 ip1:端口 ip2:端口
1 | 确认配置,输入yes回车 |
redis新旧节点更换
1 | 这里加了6007 6008 用来替换 6006 6001 |
删除旧的从节点
1 | 互为主从节点的信息可以看从节点后跟的是哪个主节点的ID,主节点可以有多个从节点。 |
把6003的slots全部转移到新节点6007
1 | 1.查看slost分配情况 redis-cli --cluster info 192.168.227.103:6006 -a 123456 |
删除旧的节点6006
1 | 1.分别进入6006和6008 ,配置为6007的从节点,再删除6006 |
slots分配
1 | 检查集群态 redis-cli --cluster check 192.168.227.102:6303 -a redis密码 |
如有报错无法重新分配slots,可以尝试修复redis
修复集群 redis-cli –cluster fix 192.168.227.102:6303 -a redis密码