微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一键编译安装Redis脚本

#!/bin/bash
#Author:QsyjSmy
#Date:2021-06-30
#QQ:582673967

COLOR1="echo -e \E[1;31m"
COLOR2="echo -e \E[1;32m"
END="\E[0m"
VERSION=redis-6.0.14
DIR=/apps/redis

yum install -y make wget gcc jemalloc-devel systemd-devel --nogpgcheck &> /dev/null 
if [ $? -eq 0 ]
then
	${COLOR2}"依赖包安装成功!"${END}
else
	${COLOR1}"依赖包安装失败,请检查网络连接!"${END}
	exit 1
fi

wget http://download.redis.io/releases/${VERSION}.tar.gz &> /dev/null 
if [ -f ${VERSION}.tar.gz ]
then
	${COLOR2}"源码包下载成功!"${END}
else
	${COLOR1}"源码包下载失败,请检查网络连接!"${END}
	exit 1
fi

tar xf ${VERSION}.tar.gz 
cd ${VERSION}/
make USE_SYstemD=yes PREFIX=${DIR} install &> /dev/null
if [ $? -eq 0 ]
then
	${COLOR2}"Redis编译安装成功!"${END}
else
	${COLOR1}"Redis编译安装失败!"${END}
	exit 1
fi

mkdir ${DIR}/{etc,log,data,run} -p
cp redis.conf ${DIR}/etc/
sed -i -e "s/^bind.*/bind 0.0.0.0/" -e "/^dir .*/c dir ${DIR}/data/" -e "/^pidfile .*/c pidfile ${DIR}/run/redis_6379.pid" -e "/^logfile .*/c logfile ${DIR}/log/redis-6379.log" ${DIR}/etc/redis.conf

echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.local
echo "PATH=${DIR}/bin:$PATH" > /etc/profile.d/redis.sh
chmod +x /etc/rc.d/rc.local
chmod +x /etc/profile.d/redis.sh
. /etc/profile.d/redis.sh &> /dev/null
. /etc/rc.d/rc.local
sysctl -p &> /dev/null

useradd -r -s /sbin/nologin redis
chown -R redis:redis ${DIR}/

cat > /usr/lib/systemd/system/redis.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd
ExecStop=/bin/kill -s QUIT \$MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --Now redis.service &> /dev/null
systemctl status redis.service &> /dev/null
netstat -tnlp | grep 0.0.0.0:6379 &> /dev/null
if [ $? -eq 0 ]
then
	${COLOR2}"Redis服务启动成功!"${END}
else
	${COLOR1}"Redis服务启动失败,请检查服务配置!"${END}
	exit 1
fi

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐