Redis系列(一)| 单机集群搭建3主3从
Redis集群部署-单主机 6节点 3M+3S
下载docker redis 镜像
docker pull redis:4.0
# 或者直接下载最新版redis镜像
docker pull redis
!!! 注意 redis 5.0以上创建集群不在使用ruby,因此如果使用最新版的redis 一下ruby部分内容直接跳过
在 /data下新建 redis-cluster 文件夹,然后创建 redis-cluster.tmpl 文件
# bind 127.0.0.1
protected-mode no
port ${PORT}
daemonize no
dir /data/redis
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
编写初始化脚本 init-redis-cluster.sh,执行创建目录的任务
#! /bin/bash
# 下载redis镜像
docker pull redis
# 创建redis基础对应的虚拟网络
docker network create redis-net
# 创建redis集群环境所需要的目录 单机 6节点 3主3从
mkdir -p /data/cluster/redis
cp /data/redis-cluster.tmpl /data/cluster/redis
# 创建6个节点对应的目录 7001-7003 为master 7004-7006为slave
for port in `seq 7000 7005`; do
mkdir -p /data/cluster/redis/$port/ \
&& mkdir -p /data/cluster/redis/$port/data \
&& PORT=$port envsubst < /data/cluster/redis/redis-cluster.tmpl > /data/cluster/redis/$port/redis$port.conf;
done
启动redis 编写redis启动脚本 create-redis-instance.sh
#! /bin/bash
# 运行docker redis 的 master 和 slave 实例
for port in `seq 7000 7005`; do
docker run -d --net host \
--privileged=true \
-v /data/cluster/redis/${port}/redis${port}.conf:/data/redis.conf \
-v /data/cluster/redis/${port}/data:/data/redis \
--restart always --name redis-${port} \
redis redis-server /data/redis.conf;
done
编写关闭并删除redis容器的脚本
#! /bin/bash
docker stop redis-7000
docker stop redis-7001
docker stop redis-7002
docker stop redis-7003
docker stop redis-7004
docker stop redis-7005
# 间隔5s后继续执行
sleep 5s
docker rm redis-7000
docker rm redis-7001
docker rm redis-7002
docker rm redis-7003
docker rm redis-7004
docker rm redis-7005
检查集群是否运行正常
进入7000 容器
docker exec -it redis-7000 /bin/bash
创建redis集群
redis-cli --cluster create \
172.162.0.202:6000 \
172.162.0.202:6001 \
172.162.0.202:6002 \
172.162.0.202:6003 \
172.162.0.202:6004 \
172.162.0.202:6005 \
--cluster-replicas 1
输入yes确认
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农Stormling!
评论
ValineGitalk