数据库
首页 > 数据库> > docker redis集群(多机,一主二从)

docker redis集群(多机,一主二从)

作者:互联网

环境

 

 三台主机,启动三个容器,可以做集群,但是只要一台挂掉,集群就失败

三台主机,启动六个容器,一台主机搭建一主一从2个容器,挂掉一个容器,从节点顶上。

1、创建目录

192.168.59.102

# mkdir -p /home/redis/node1/data

# mkdir -p /home/redis/node4/data

# mkdir -p /home/redis/node7/data

192.168.59.103
# mkdir -p /home/redis/node2/data

# mkdir -p /home/redis/node5/data

# mkdir -p /home/redis/node8/data

192.168.59.104
# mkdir -p /home/redis/node3/data

# mkdir -p /home/redis/node6/data

# mkdir -p /home/redis/node9/data

2、启动容器

192.168.59.102

#docker create --name redis1 --network=host -v /home/redis/node1/data:/data  redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node1.conf

redis1端口默认:6379

#docker create --name redis4 --network=host  -v /home/redis/node4/data:/data  redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node4.conf --port 6004

redis4端口:6004

#docker create --name redis7 --network=host  -v /home/redis/node7/data:/data  redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node4.conf --port 6007

redis4端口:6007

#docker start redis1 redis4 redis7

192.168.59.103

#docker create --name redis2 --network=host -v /home/redis/node2/data:/data  redis --bind 192.168.59.103 --cluster-enabled yes --cluster-config-file redis-node2.conf

redis2端口默认:6379

#docker create --name redis5 --network=host  -v /home/redis/node5/data:/data  redis --bind 192.168.59.103 --cluster-enabled yes --cluster-config-file redis-node5.conf --port 6005

redis5端口:6005

#docker create --name redis8 --network=host  -v /home/redis/node8/data:/data  redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node4.conf --port 6008

redis4端口:6008

#docker start redis2 redis5 redis8

192.168.59.104

#docker create --name redis3 --network=host -v /home/redis/node3/data:/data  redis --bind 192.168.59.104 --cluster-enabled yes --cluster-config-file redis-node3.conf

redis3端口默认:6379

docker create --name redis6 --network=host  -v /home/redis/node6/data:/data  redis --bind 192.168.59.104 --cluster-enabled yes --cluster-config-file redis-node6.conf --port 6006

redis6端口:6006

#docker create --name redis9 --network=host  -v /home/redis/node9/data:/data  redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node4.conf --port 6009

redis4端口:6009

#docker start redis3  redis6 redis9

3、配置集群

进入任意一个容器

--cluster-replicas 0:0标识无从节点

--cluster-replicas 1:1标识一主一从

--cluster-replicas 2:2标识一主二从

如果实例不是3的倍数会报错,需要手动配置,这里就不说明了

 

 

# redis-cli --cluster create 192.168.59.102:6379 192.168.59.102:6004 192.168.59.102:6007 192.168.59.103:6379 192.168.59.103:6005 192.168.59.103:6008  192.168.59.104:6379 192.168.59.104:6006 192.168.59.104:6009 --cluster-replicas 2

 

验证:

关闭192.168.59.102和192.168.59.103服务器

 

集群正常,因为,主实例挂掉,从实例会升级成为新的主实例,剩下的192.168.59.104集群节点中都有一个主实例在运行

 

 

结果:

主/从节点也叫做:主/从实例,一个主实例关闭,从实例就回成为新的主实例

三个集群节点中,主/从实例必要有一个,否则集群关闭

 

 

标签:--,redis,192.168,cluster,home,docker,data,一主二
来源: https://www.cnblogs.com/leihongnu/p/16443520.html