[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