Docker构建redis集群
-
创建虚拟网卡
docker network create net-redis --subnet 172.38.0.0/16
查看:
-
配置6个redis配置文件
使用脚本自动配置:for port in $(seq 1 6); \ do \ mkdir -p node-${port}/conf touch node-${port}/conf/redis.conf cat << EOF >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
-
启动6台redis服务器
for port in $(seq 1 6); \ do \ docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \ -v /home/docker_file/volume_files/redis/node-${port}/data:/data \ -v /home/docker_file/volume_files/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \ -d --net net-redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf done
-
构建cluster集群
-
测试集群高可用
存入数据
shutdown主机redis-2,然后查看数据是否还存在
很明显,redis-6代替redis-2变成主机,并且备份了key1的数据。