一、环境准备
docker pull redis
docker pull ruby
二、集群搭建
1、创建配置文件
vim redis-cluster.tmpl
port ${PORT}
#是否禁止公网访问redis cache 开启条件 没有bind IP 没有设置requirepass访问密码
protected-mode no
#是否开启守护模式
daemonize no
#aof日志 每次写操作都记录一条日志
appendonly yes
#目录
dir /data/redis
#是否开启集群
cluster-enabled yes
#集群配置文件
cluster-config-file nodes.conf
#超时时间
cluster-node-timeout 5000
#创建配置文件
for port in `seq 7000 7002`; do
mkdir -p ./$port/ && mkdir -p ./$port/data \
&& PORT=$port envsubst < ./redis-cluster.tmpl > ./$port/redis.conf;
done
启动容器
#2、启动容器
for port in `seq 7000 7002`; do
docker run -d \
-v $PWD/$port/redis.conf:/data/redis.conf \
-v $PWD/$port/data:/data/redis \
--restart always --name redis-$port --net host \
redis redis-server /data/redis.conf;
done
#进入容器
docker exec -it redis-7000 /bin/sh
3、搭建集群
#进入容器
docker exec -it redis-7000 /bin/sh
#搭建集群
redis-cli --cluster create 192.168.108.20:7000 192.168.108.20:7001 192.168.108.20:7002 192.168.108.21:7000 192.168.108.21:7001 192.168.108.21:7002 --cluster-replicas 1
#连接redis测试
redis-cli -p 7000 -c
4、设置集群密码
#设置密码 主从服务器都需要执行(其中一个节点)
docker exec -it redis-7000 /bin/sh
redis-cli -p 7000 -c
#xxxxx替换为你需要设置的密码
config set masterauth xxxxx
config set requirepass xxxxx
auth shenpu2019
config rewrite