环境准备 创建redis专用网络
docker network create redis --subnet 100.100.0.0/16
通过脚本创建6个redis配置
for port in $(seq 1 6); \
do \
mkdir -p /root/redis/node-${port}/conf.d
touch /root/redis/node-${port}/conf.d/redis.conf
cat << EOF >/root/redis/node-${port}/conf.d/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 100.100.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
cluster-enabled yes #是否开启集群模式
cluster-config-file nodes.conf #创建集群节点信息文件
cluster-node-timeout #集群节点超时设置
cluster-announce-ip #集群节点IP设置
cluster-announce-port #集群节点端口设置
cluster-announce-bus-port #集群桥段端口
创建6台redis容器
docker run --name redis1 -p 6379:6379 -p 16379:16379 -d -v /root/redis/node-1/data:/data -v /root/redis/node-1/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.11 redis redis-server /etc/redis/redis.conf
docker run --name redis2 -p 6380:6379 -p 16380:16379 -d -v /root/redis/node-2/data:/data -v /root/redis/node-2/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.12 redis redis-server /etc/redis/redis.conf
docker run --name redis3 -p 6381:6379 -p 16381:16379 -d -v /root/redis/node-3/data:/data -v /root/redis/node-3/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.13 redis redis-server /etc/redis/redis.conf
docker run --name redis4 -p 6382:6379 -p 16382:16379 -d -v /root/redis/node-4/data:/data -v /root/redis/node-4/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.14 redis redis-server /etc/redis/redis.conf
docker run --name redis5 -p 6383:6379 -p 16383:16379 -d -v /root/redis/node-5/data:/data -v /root/redis/node-5/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.15 redis redis-server /etc/redis/redis.conf
docker run --name redis6 -p 6384:6379 -p 16384:16379 -d -v /root/redis/node-6/data:/data -v /root/redis/node-6/conf.d/redis.conf:/etc/redis/redis.conf --net redis --ip 100.100.0.16 redis redis-server /etc/redis/redis.conf
创建集群
docker exec -it redis1 redis-cli --cluster create 100.100.0.11:6379 100.100.0.12:6379 100.100.0.13:6379 100.100.0.14:6379 100.100.0.15:6379 100.100.0.16:6379 --cluster-replicas 1
创建一个主从比例1:1的集群
测试集群
docker exec -it redis1 redis-cli -c
进入 redis 集群
cluster info
查看集群信息
cluster nodes
查看集群所有节点
set name dog
键入一个值
docker stop 执行的redis机器
down掉执行命令的redis机器
docker exec -it redis1 redis-cli -c
get name
重新登录集群并查看down掉机器输入的值
完美实现高可用
|