创建三个节点的单副本 redis 集群,按顺序执行下列三个脚本,注意按需修改参数。
1. 生成配置文件
# 1.make_redis_conf.sh
for port in $(seq 6379 6381);
do
mkdir -p ~/data/redis/node-${port}/conf
touch ~data/redis/node-${port}/conf/redis.conf
cat << EOF > ~/data/redis/node-${port}/conf/redis.conf
port ${port}
requirepass 1234 # 密码,按需更改
bind 0.0.0.0
protected-mode no
daemonize no
appendonly no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 10.0.2.15 # 按机器具体情况更改
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
EOF
done
2. 启动容器
# 2.start_redis_containers.sh
for port in $(seq 6379 6381); \
do \
docker run -it -d -p ${port}:${port} -p 1${port}:1${port} \
--privileged=true -v ~/data/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
--privileged=true -v ~/data/redis/node-${port}/data:/data \
--restart always --name redis-${port} --net myredis \
--sysctl net.core.somaxconn=1024 redis:6 redis-server /usr/local/etc/redis/redis.conf
done
3. 启动集群
# 3.create_redis_cluster.sh
# myip 按具体情况更改
myip=10.0.2.15 && redis-cli -a 1234 --cluster create ${myip}:6379 ${myip}:6380 ${myip}:6381 --cluster-replicas 1
4. 清除集群
# 4.remove_all_redis_containers_and_conf.sh
docker rm -f redis-6379 redis-6380 redis-6381
rm -rf ~/data/redis/*