一鍵編譯安裝redis

[root@C8-24 ~]# cat redis_instll.sh 
#!/bin/bash
#
#*******************************************************************************
#Author:            hwang
#Data:              2021-08-05-10:46:47
#Description:       redis_instll.sh
#Copyright (C):        2021 All rights reserved
#*******************************************************************************
#Fontcolor#red(31):green(32):yellow(33):blue(34):purple(35):cyan(36):white(37)
#Backcolor#red(41):green(42):yellow(43):blue(44):purple(45):cyan(46):white(47)
#*******************************************************************************
. /etc/init.d/functions
VERSION=redis-6.2.5
PASSWORD=123456
INSTALL_DIR=/apps/redis
install(){
yum -y install wget make  gcc jemalloc-devel || { action "軟件安裝失敗,檢查網絡配置" false;exit;}
wget https://download.redis.io/releases/${VERSION}.tar.gz  || { action "Redis reload faild" false;exit; }
tar xf ${VERSION}.tar.gz
cd ${VERSION}
make PREFIX=${INSTALL_DIR} install && action "Redis 編譯完成" || { action "Redis 編譯安裝失敗" false;exit; }
ln -s ${INSTALL_DIR}/bin/redis-* /usr/bin/
mkdir -p ${INSTALL_DIR}/{etc,log,data,run}
cp redis.conf ${INSTALL_DIR}/etc/
sed -i  's/bind 127.0.0.1/bind 0.0.0.0/'  ${INSTALL_DIR}/etc/redis.conf    
sed -i  's/# requirepass/a requirepass $PASSWORD"'  ${INSTALL_DIR}/etc/redis.conf    
sed -i  's/^dir .*/c dir ${INSTALL_DIR}/data/'     ${INSTALL_DIR}/etc/redis.conf    
sed -i  's/logfile .*/c logfile ${INSTALL_DIR}/log/redis-6397.log'  ${INSTALL_DIR}/etc/redis.conf    
sed -i  's/^pidfile .*/c pidfile ${INSTALL_DIR}/run/redis-6393.pid'  ${INSTALL_DIR}/etc/redis.conf
sed -i  's/daemonize .*/c  daemonize  yes'  ${INSTALL_DIR}/etc/redis.conf

if id redis &> /dev/null;then
    action "redis 用戶存在" false
else
    useradd -r -s /sbin/nologin redis
    action "redis 用戶建立成功"
fi

chown -R redis.redis ${INSTALL_DIR}
cat >>/etc/sysctl.conf <<EOF
net.core.somaxconn = 1024
vm.overcommit_memory = 1
EOF
sysctl -p
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >>/etc/rc.d/rc.local 
chmod +x /etc/rc.d/rc.local
/etc/rc.d/rc.local 
cat > /usr/lib/systemd/system/redis6379.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=${INSTALL_DIR}/bin/redis-server ${INSTALL_DIR}/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
systemct  enable --now redis6379  &>/dev/null && action "Redis 啓動成功,信息以下:" || { action "redis 啓動失敗" false;exit; }
redis-cli -a $PASSWORD INFO  server 2>/dev/null
}
install
相關文章
相關標籤/搜索