1. 程式人生 > 其它 >安裝Redis 任意版本shell 指令碼

安裝Redis 任意版本shell 指令碼

指令碼用法:chmod 755 redis-install.sh && sh redis-install.sh 4.0.10 (後面跟的是你需要的版本號,需要什麼版本就寫什麼版本)

#! /usr/bin/bash
##redis任何版本全程自動化原始碼編譯安裝
##用法:sh redis-install.sh 4.0.10 (後面跟的是你需要的版本號,需要什麼版本就寫什麼版本),我這裡安裝的4.0.10
version=$1
usage(){
echo "usage: $0 version"
}

if [ $# -ne 1 ]
then
usage
exit -1
fi

#Redis安裝包下載
cd 
/usr/local/src if [ ! -f redis-${version}.tar.gz ] then curl -o /usr/local/src/redis-${version}.tar.gz http://download.redis.io/releases/redis-${version}.tar.gz fi #Redis依賴包安裝 yum clean all yum makecache fast yum -y install gcc gcc-c++ tcl #編譯Redis所需要的gcc yum -y install centos-release-scl yum -y install devtoolset-9
-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils source /opt/rh/devtoolset-9/enable echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile gcc --version ##內系統引數核優化 cat >> /etc/rc.d/rc.local << "EOF" ##關閉Linux的THP(記憶體管理系統)通過使用更大的記憶體頁面,來減少具有大量記憶體的計算機上的TLB的開銷 if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]
then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if [ -f /sys/kernel/mm/transparent_hugepage/defrag ] then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi EOF chmod u+x /etc/rc.d/rc.local if [ -f /sys/kernel/mm/transparent_hugepage/enabled ] then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if [ -f /sys/kernel/mm/transparent_hugepage/defrag ] then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi cat >> /etc/sysctl.conf << "EOF" #Linux系統核心引數優化 net.core.somaxconn = 2048 net.ipv4.tcp_max_syn_backlog = 2048 vm.overcommit_memory = 1 EOF sysctl -p cat > /etc/security/limits.conf << "EOF" root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535 EOF #Redis編譯安裝 cd /usr/local/src tar -zxvf redis-${version}.tar.gz cd /usr/local/src/redis-${version} make make PREFIX=/usr/local/redis install #Redis基礎配置 mkdir -p /usr/local/redis/{etc,logs,data} egrep -v "^$|^#" /usr/local/src/redis-${version}/redis.conf > /usr/local/redis/etc/redis.conf #sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /usr/local/redis/etc/redis.conf sed -i "s/protected-mode yes/protected-mode no/g" /usr/local/redis/etc/redis.conf sed -i "s/daemonize no/daemonize yes/g" /usr/local/redis/etc/redis.conf sed -i "s/pidfile \/var\/run\/redis_6379.pid/pidfile \/usr\/local\/redis\/redis.pid/g" /usr/local/redis/etc/redis.conf sed -i "s/dir \.\//dir \/usr\/local\/redis\/data/g" /usr/local/redis/etc/redis.conf sed -i "s/logfile \"\"/logfile \"\/usr\/local\/redis\/logs\/redis.log\"/g" /usr/local/redis/etc/redis.conf sed -i "s/dbfilename dump.rdb/dbfilename dump.rdb/g" /usr/local/redis/etc/redis.conf sed -i "s/appendfilename \"appendonly.aof\"/appendfilename \"appendonly.aof\"/g" /usr/local/redis/etc/redis.conf #PATH配置 echo "export PATH=${PATH}:/usr/local/redis/bin" >>/etc/profile source /etc/profile #啟動redis服務 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf #檢視redis監聽埠 netstat -tanp|grep redis