redis伪集群一键部署脚本

94 阅读2分钟

本文已参与新人创作礼活动,一起开启掘金创作之路
LINUX系统-CentOS7.9使用redis脚本一键部署redis伪服务!
系统环境:CentOS7.9

实验要求:部署redis伪集群服务
脚本执行方法:vim redis.sh
插入:
#!/bin/bash
#function:一键部署redis伪集群
#author:墨染-2022-7-20
if [ $USER != root ];then

echo "当前不是root用户,请切换至root用户再次运行脚本"
exit
fi
ping -c3 -i0.1 -W1 www.baidu.com &> /dev/null
if [ $? != 0 ];then

echo "当前无网络,请保证网络畅通再次运行脚本"
exit
else
echo "当前网络畅通,即将开始运行脚本"
fi
sleep 2
#################################全局生效##############################
function PD {
if [ $? != 0 ];then
echo "进程未启动成功" && sleep 1
exit
else
echo "进程已成功启动" && sleep 1
fi
}
ip=ifconfig | grep inet | cut -d " " -f 10 |head -1

echo "本次部署的服务为redis伪集群" && sleep 2
echo "开始进行安装前必要设置,本次预计占用7001、7002、7003、7004、7005、7006端口;请保证端口已开放或未被其他服务占用"
read -p "请输入yes/no,保证服务正常运行:" XX
case $XX in

yes)
echo "将开始继续运行脚本..." && sleep 2
;;
no)
echo "请先准备好安装环境,即将退出脚本.." && sleep 2
;;
*)
echo "请选择yes/no"
;;
esac \
echo "开始配置必需目录,并下载所需安装包" && sleep 2
mkdir -v /usr/local/redis
cd /usr/local/redis
wget download.redis.io/releases/re…
if [ $? -eq 0 ];then

echo "安装包已下载成功!"
else
echo "安装包下载失败,请查看网络通讯是否正常"
echo "即将退出脚本" && sleep2 && exit
fi
tar xvfz redis-5.0.10.tar.gz
mv redis-5.0.10 redis_7001
cd redis_7001
mkdir -v log data
echo "安装包解压成功!开始编译并安装redis" && sleep 2
make MALLOC=libc
make install PREFIX=/usr/local/redis
if [ $? -eq 0 ];then
echo "安装redis成功!!!!"
else
echo "安装失败,请及时排查故障原因" \
echo "即将退出脚本" && sleep 2
exit
fi
echo "因部署平台需要,将更改配置文件,请等待..."
sed -i "69c\bind 0.0.0.0" /usr/local/redis/redis_7001/redis.conf
sed -i "92c\port 7001" /usr/local/redis/redis_7001/redis.conf
sed -i "136c\daemonize yes" /usr/local/redis/redis_7001/redis.conf
sed -i "158c\pidfile "/var/run/redis_7001.pid" " /usr/local/redis/redis_7001/redis.conf sed -i "171c\logfile "/usr/local/redis/redis_7001/log/redis.log" " /usr/local/redis/redis_7001/redis.conf sed -i "263c\dir "/usr/local/redis/redis_7001/data" " /usr/local/redis/redis_7001/redis.conf sed -i "832c\cluster-enabled yes" /usr/local/redis/redis_7001/redis.conf
sed -i "840c\cluster-config-file nodes-redis_7001.conf" /usr/local/redis/redis_7001/redis.conf sed -i "846c\cluster-node-timeout 15000" /usr/local/redis/redis_7001/redis.conf \

cd /usr/local/redis
cp -a redis_7001 redis_7002
cp -a redis_7001 redis_7003
cp -a redis_7001 redis_7004
cp -a redis_7001 redis_7005
cp -a redis_7001 redis_7006

sed -i 's/7001/7002/g' /usr/local/redis/redis_7002/redis.conf
sed -i 's/7001/7003/g' /usr/local/redis/redis_7003/redis.conf
sed -i 's/7001/7004/g' /usr/local/redis/redis_7004/redis.conf
sed -i 's/7001/7005/g' /usr/local/redis/redis_7005/redis.conf
sed -i 's/7001/7006/g' /usr/local/redis/redis_7006/redis.conf

cd /usr/local/redis/bin
./redis-server /usr/local/redis/redis_7001/redis.conf
netstat -ntlp | grep 7001
PD
./redis-server /usr/local/redis/redis_7002/redis.conf
netstat -ntlp | grep 7002
PD
./redis-server /usr/local/redis/redis_7003/redis.conf
netstat -ntlp | grep 7003
PD
./redis-server /usr/local/redis/redis_7004/redis.conf
netstat -ntlp | grep 7004
PD
./redis-server /usr/local/redis/redis_7005/redis.conf
netstat -ntlp | grep 7005
PD
./redis-server /usr/local/redis/redis_7006/redis.conf
netstat -ntlp | grep 7006
PD \

echo yes |./redis-cli --cluster create ip:7001ip:7001 ip:7002 ip:7003ip:7003 ip:7004 ip:7005ip:7005 ip:7006 --cluster-replicas 1
echo "redis伪集群部署成功,即将连接集群测试" && sleep 2
./redis-cli -c -p 7001