Docker 配置 redis 集群3主3从 {#Docker-配置-redis-集群3主3从}
1. 启动docker服务 {#1-启动docker服务}
注意开放端口,或者关闭防火墙,否则从机连接不上主机。
|-----------|------------------------------------------|
| 1
| hljs crmsh systemctl start docker
|
2. 创建6个docker容器redis实例 {#2-创建6个docker容器redis实例}
1)创建实例 redis-node-1 {#1)创建实例-redis-node-1}
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs jboss-cli docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
|
2)创建实例 redis-node-2 {#2)创建实例-redis-node-2}
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs jboss-cli docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
|
3)创建实例 redis-node-3 {#3)创建实例-redis-node-3}
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs jboss-cli docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
|
4)创建实例 redis-node-4 {#4)创建实例-redis-node-4}
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs jboss-cli docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
|
5)创建实例 redis-node-4 {#5)创建实例-redis-node-4}
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs jboss-cli docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
|
6)创建实例 redis-node-6 {#6)创建实例-redis-node-6}
|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs jboss-cli docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
|
命令解释:
docker run
:创建并运行docker容器实例--name redis-node-6
:容器名字--net host
:使用宿主机的IP和端口,默认--privileged=true
:获取宿主机root用户权限-v /data/redis/share/redis-node-6:/data
:容器卷,宿主机地址:dockerp内部地址redis:6.0.8
:redis镜像和版本号--cluster-enabled ye
:开启redis集群--appendonly yes
:开启持久化--port 6386
:redis端口号
运行成功,效果如下
3. 进入容器构建集群关系 {#3-进入容器构建集群关系}
进入容器 redis-noe-1
|-----------|----------------------------------------------------------|
| 1
| hljs crmsh docker exec -it redis-node-1 /bin/bash
|
注意:进入docker容器后才能执行一下命令,且注意自己的真实IP地址
构建主从关系
--cluster-replicas 1
表示为每个master创建一个slave节点
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1
| hljs dns redis-cli --cluster create 192.168.111.147:6381 192.168.111.147:6382 192.168.111.147:6383 192.168.111.147:6384 192.168.111.147:6385 192.168.111.147:6386 --cluster-replicas 1
|
4. 查看集群状态 {#4-查看集群状态}
链接进入6381作为切入点,查看节点状态
|-------------------|----------------------------------------------------------------|
| 1 2 3 4 5
| hljs pgsql redis-cli -p 6381 cluster info cluster nodes
|
若集群状态跟上图一样,则说明3主3从集群搭建成功啦~👌