2台服务器,每台3个redis容器,三主三重
1、docker pull redis 下载最新redis镜像当前(5.0.4)
2、在/usr/local下,创建redis_cluster目录,在目录下创建redis-cluster.tmpl文件
3、在redis-cluster.tmpl内容
port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 39.10X.XX.XX //自己服务器IP
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
4、分别在台服务器中redis_cluster目录运行下面方法,端口号:服务器1:7000-7002,服务器2:7003-7005
for port in `seq 7003 7005`; do \
mkdir -p ./${port}/conf \
&& PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
&& mkdir -p ./${port}/data; \
done
5、开启redis容器 ,在2台服务器分别执行下面命令,端口号:服务器1:7000-7002,服务器2:7003-7005
这里用的是 host网络
for port in `seq 7003 7005`; do \
docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \
-v /usr/local/redis_cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /usr/local/redis_cluster/${port}/data:/data \
--restart always --name redis-${port} --net host \
--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done
6、进入任意一个容器
docker exec -it redis-7005 /bin/bash
7、创建集群
redis-cli --cluster create 192.168.1.16:7000 192.168.1.16:7001 192.168.1.16:7002 192.168.1.19:7003 192.168.1.19:7004 192.168.1.19:7005 --cluster-replicas 1
参考网站