现在安装对应的应用软件一般都推荐使用Docker容器,我们这里也不例外,直接使用Docker容器进行安装,安装大概要分这几个步骤:
1、创建redis-cluster.tmpl配置Redis信息【端口、是否开启集群等】
2、创建redis.sh配置需要创建的redis信息
3、添加网络,redis集群使用该网络
4、执行redis.sh实现创建redis
5、执行redis-cli创建集群
配置Redis信息
创建 redis-cluster.tmpl 配置Redis信息(redis.conf)
#端口
port ${PORT}
#非保护模式
protected-mode no
#启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
#超时时间
cluster-node-timeout 5000
#集群各节点IP地址
cluster-announce-ip 192.168.211.141
#集群节点映射端口
cluster-announce-port ${PORT}
#集群总线端口
cluster-announce-bus-port 1${PORT}
#开启aof持久化策略
appendonly yes
#后台运行
#daemonize yes
#进程号存储
pidfile /var/run/redis_${PORT}.pid
#集群加密
#masterauth wangj
#requirepass wangj
Redis创建配置
创建 redis.sh 配置需要创建的 Redis 集群
#!/bin/bash
#在/usr/local/server/redis-cluster下生成conf和data目标,并生成配置信息
for port in `seq 7001 7006`;
do
mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf && mkdir -p ./${port}/data;
done
#创建6个redis容器
for port in `seq 7001 7006`;
do
docker run -d -it -p ${port}:${port} -p 1${port}:1${port} -v /usr/local/server/rediscluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/server/rediscluster/${port}/data:/data --privileged=true --restart always --name redis-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf;
done
#查找ip
for port in `seq 7001 7006`;
do
echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port}" ";
done
#换行
echo -e "\n"
#输入信息
read -p "请把输入要启动的docker容器名称,默认redis-7001:" DOCKER_NAME
#判断是否为空
if [ ! $DOCKER_NAME ];
then DOCKER_NAME='redis-7001';
fi
#进入容器
docker exec -it redis-7001 /bin/bash
这里涉及到了一个网络的定义 redis-net ,代码如下:
docker network create redis-net
移除脚本创建
创建 stop.sh 脚本,用于停止Redis容器,并且移除对应容器
#!/bin/bash
docker stop redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006
docker rm redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 redis-7006
rm -rf 7001 7002 7003 7004 7005 7006
脚本授权:给 redis.sh 和 stop.sh 添加可执行权限:
chmod +x redis.sh
chmod +x stop.sh
执行脚本开始安装Redis节点,并进入到 /usr/local/bin 目录下执行 redis-cli 创建集群关联:
#执行集群几点创建
./redis.sh
#进入到任意一个安装好的redis节点的bin目录,里面有个脚本对象redis-cli,然后执行集群创建
./redis-cli --cluster create 172.18.0.2:7001 172.18.0.3:7002 172.18.0.4:7003 172.18.0.5:7004 172.18.0.6:7005 172.18.0.7:7006 --cluster-replicas 1
–cluster-replicas 表示有一个主有几个slave。
