三主三从集群
主节点 |
从节点 |
|
第一个集群(100) |
192.168.10.100:6380 |
192.168.10.101:6380 |
第二个集群(110) |
192.168.10.110:6380 |
192.168.10.111:6380 |
第三个集群(120) |
192.168.10.120:6380 |
192.168.10.121:6380 |
1. 创建集群网络
docker network create --driver bridge --subnet 192.168.10.0/24 --gateway 192.168.10.1 cluster
2. 创建相关文件
2.1. 创建三个集群对应文件夹
[root@ovkgwkuxcpcmdmmq home]# mkdir cluster1
[root@ovkgwkuxcpcmdmmq home]# mkdir cluster2
[root@ovkgwkuxcpcmdmmq home]# mkdir cluster3
2.2. 每个集群内两个节点
[root@ovkgwkuxcpcmdmmq cluster1]# mkdir master
[root@ovkgwkuxcpcmdmmq cluster1]# mkdir slave1
2.3. 每个节点创建data文件及redis.conf
[root@ovkgwkuxcpcmdmmq master]# mkdir data
[root@ovkgwkuxcpcmdmmq master]# touch redis.conf
2.4. 文件树形结构
3. redis.conf内容
下载地址:http://download.redis.io/redis-stable/redis.conf
cluster-enabled yes
cluster-config-file node.conf
port 6380
appendonly yes
appendfilename "appendonly.aof"
- cluster-enabled yes 开启集群功能
4. 节点执行
4.1. Master执行
docker run -d --name cluster1-master --net cluster --ip=192.168.10.100 --restart=always --privileged=true -v /home/cluster1/master/redis.conf:/etc/redis/redis.conf -v /home/cluster1/master/data:/data redis redis-server /etc/redis/redis.conf
4.2. slave1执行
docker run -d --name cluster1-slave1 --net cluster --ip=192.168.10.101 --restart=always --privileged=true -v /home/cluster1/slave1/redis.conf:/etc/redis/redis.conf -v /home/cluster1/slave1/data:/data redis redis-server /etc/redis/redis.conf
4.3. 三主三从完整执行
docker run -d --name cluster1-master --net cluster --ip=192.168.10.100 --restart=always --privileged=true -v /home/cluster1/master/redis.conf:/etc/redis/redis.conf -v /home/cluster1/master/data:/data redis redis-server /etc/redis/redis.conf
docker run -d --name cluster2-master --net cluster --ip=192.168.10.110 --restart=always --privileged=true -v /home/cluster2/master/redis.conf:/etc/redis/redis.conf -v /home/cluster2/master/data:/data redis redis-server /etc/redis/redis.conf
docker run -d --name cluster3-master --net cluster --ip=192.168.10.120 --restart=always --privileged=true -v /home/cluster3/master/redis.conf:/etc/redis/redis.conf -v /home/cluster3/master/data:/data redis redis-server /etc/redis/redis.conf
docker run -d --name cluster1-slave1 --net cluster --ip=192.168.10.101 --restart=always --privileged=true -v /home/cluster1/slave1/redis.conf:/etc/redis/redis.conf -v /home/cluster1/slave1/data:/data redis redis-server /etc/redis/redis.conf
docker run -d --name cluster2-slave1 --net cluster --ip=192.168.10.111 --restart=always --privileged=true -v /home/cluster2/slave1/redis.conf:/etc/redis/redis.conf -v /home/cluster2/slave1/data:/data redis redis-server /etc/redis/redis.conf
docker run -d --name cluster3-slave1 --net cluster --ip=192.168.10.121 --restart=always --privileged=true -v /home/cluster3/slave1/redis.conf:/etc/redis/redis.conf -v /home/cluster3/slave1/data:/data redis redis-server /etc/redis/redis.conf
5. 配置主从集群
5.1. 进入任意容器实例
docker exec -it cluster1-master bash
5.2. 配置集群
最低3主3从,主节点为前3个
redis-cli --cluster create 192.168.10.100:6380 192.168.10.110:6380 192.168.10.120:6380 192.168.10.101:6380 192.168.10.111:6380 192.168.10.121:6380 --cluster-replicas 1
5.3. 查看集群节点信息
redis-cli -h 192.168.10.100 -p 6380
cluster nodes
6. 集群模式连接
添加-c参数
redis-cli -c -h 192.168.10.100 -p 6380
6.1. 执行过程
set name tom
get name
参考
https://blog.csdn.net/qq_42971035/article/details/128171542
https://blog.csdn.net/weixin_46122171/article/details/127309830
https://blog.csdn.net/weixin_42440345/article/details/95048739