docker实战之redis集群部署

1、任务

  实现三主三从的redis集群,当主redis挂掉的时候,副redis能顶上。

     docker实战之redis集群部署

 

 

 2、步骤

(1)创建一个网卡

  命令:docker network create redis --subnet 172.38.0.0/16

    docker实战之redis集群部署

 

 

  

 (2)通过shell脚本创建留个redis配置文件

  脚本内容如下

for port in $(seq 1 6); \

do \

mkdir -p /mydata/redis/node-${port}/conf

touch /mydata/redis/node-${port}/conf/redis.conf

cat << EOF >/mydata/redis/node-${port}/conf/redis.conf

port 6379

bind 0.0.0.0

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

cluster-announce-ip 172.38.0.1${port}

cluster-announce-port 6379

cluster-announce-bus-port 16379

appendonly yes

EOF

done

含义:创建留个redis配置信息的文件夹,并写入redis集群的信息。

docker实战之redis集群部署

 

 

 查看信息是否创建成功。

docker实战之redis集群部署

 

 

 

查看配置信息是否写入。

    docker实战之redis集群部署

 

 

 

(3)启动六个redis容器服务

  命令

第一个:
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \
-v /mydata/redis/node-1/data:/data \
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

第二个:
docker run -p 6372:6379 -p 16372:16379 --name redis-2 \
-v /mydata/redis/node-2/data:/data \
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

以此类推。也可以用脚本实现。

 

    docker实战之redis集群部署

 

 最终启动了六个服务。

 

   docker实战之redis集群部署

 

 

(4)创建集群

  先进入一个容器redis-1。

  docker实战之redis集群部署

 

   创建集群。

  命令:redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

  docker实战之redis集群部署

   集群创建成功。

 

(5)测试集群

  连接集群:redis-cli -c

  -c即集群模式

  docker实战之redis集群部署

 

   查看集群信息:cluster info。

  docker实战之redis集群部署

 

   查看节点信息:cluster nodes。

  docker实战之redis集群部署

 

   在集群中设置一个值:命令:set a b   。集群13正在处理。

    docker实战之redis集群部署

 

  将集群13容器停止,再查看从机中的数据。

  docker实战之redis集群部署

 

  再次查看集群中数据,发现在集群14中有数据,说明在主机器停止工作的情况下,从机自动顶上了。

  docker实战之redis集群部署

 

   可以再次查看集群信息。

  docker实战之redis集群部署

 

  可以看到有一台主机已经停止服务,然后启动从机作为主机,即myself,master。

 

3、结论

  使用docker可以轻易地搭建高可用性redis集群,再次证明了docker的优越性!

 

 

1、创建redis集群指令

    redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

  --cluster create : 创建集群

  172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379  : 六个节点的ip和端口

  --cluster-replicas 1 :切片方式


 

 

 

docker实战之redis集群部署

上一篇:RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR


下一篇:NR UCI Multiplexing on PUSCH