文章目录
1.原文链接
Docker部署Redis集群----第十二节(docker-redis-cluster集群理论篇)
Docker部署Redis集群----第十三节(docker-Compose介绍)
2.基于host模式创建六个容器
(1)为什么要是host模式:
(2)六个容器:
redis-node1:6379
redis-node2:6380
redis-node3:6381
redis-node4:6382
redis-node5:6383
redis-node6:6384
#创建容器
docker create --name redis-node1 --net host \
-v /aloneyue01/redis-cluster/redis-data/node1:/data redis:5.0.5 \
--cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379
docker create --name redis-node2 --net host \
-v /aloneyue01/redis-cluster/redis-data/node2:/data redis:5.0.5 \
--cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380
docker create --name redis-node3 --net host \
-v /aloneyue01/redis-cluster/redis-data/node3:/data redis:5.0.5 \
--cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381
docker create --name redis-node4 --net host \
-v /aloneyue01/redis-cluster/redis-data/node4:/data redis:5.0.5 \
--cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382
docker create --name redis-node5 --net host \
-v /aloneyue01/redis-cluster/redis-data/node5:/data redis:5.0.5 \
--cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383
docker create --name redis-node6 --net host \
-v /aloneyue01/redis-cluster/redis-data/node6:/data redis:5.0.5 \
--cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384
#启动容器
docker start redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 redis-node6
1. --cluster-enabled:是否启动集群,选值:yes 、no
2. --cluster-config-file 配置文件.conf :指定节点信息,自动生成,虽然此配置的名字叫"集群配置文件",但是此配置文件不能人工编辑,它是集群节点自动维护的文件,主要用于记录集群中有哪些节点、他们的状态以及一些持久化参数等,方便在重启时恢复这些状态。通常是在收到请求之后这个文件就会被更新。
3. --cluster-node-timeout 毫秒值: 配置节点连接超时时间
4. --appendonly:是否开启持久化,选值:yes、no
3.组建Redis集群
#进入其中一个redis中
docker exec -it redis-node1 /bin/bash
#没反应
redis-cli --cluster create \
ip:6379 ip:6380 ip:6381 \
ip:6382 ip:6383 ip:6384 \
--cluster-replicas 1
#有反应
redis-cli --cluster create ip:6379 ip:6380 ip:6381 --cluster-replicas 0
#先将6379 6380 6381设置为主节点
redis-cli --cluster create ip:6379 ip:6380 ip:6381 --cluster-replicas 0
#将6382 6383 6384分别作为前三个主节点的从节点
redis-cli --cluster add-node ip:6382 \
ip:6379 --cluster-slave \
--cluster-master-id 76ba8b3923e7c11455d188e1026e1d9d7e7d86ba
redis-cli --cluster add-node ip:6383 \
ip:6380 --cluster-slave \
--cluster-master-id dca6382a5b0cc555972f0350263e508e95cee57a
redis-cli --cluster add-node ip:6384 \
ip:6381 --cluster-slave \
--cluster-master-id 06818711f097903ac50b4c2872c83766910dd062
4.Redis集群部署一直卡在Waiting for the cluster to join …
Redis集群部署一直卡在Waiting for the cluster to join …(Redis集群总线配置)
需要开放16379-16384范围的端口,详见上文。
5.查看集群信息
#随便进入一个节点容器
docker exec -it redis-node1 bash
#连接客户端
redis-cli
#查看集群信息
cluster nodes
6.在集群中录入值
#-c采用集群策略连接,设置数据会根绝实际插入的插槽自动切换到相应主节点上,非常的神奇好用!
redis-cli -c -p 端口号