当前位置 : 主页 > 操作系统 > centos >

redis单机单实例一键安装脚本

来源:互联网 收集:自由互联 发布时间:2022-06-20
脚本功能 redis单机单实例一键安装脚本 注意事项 1.仅适用于Linux/Centos 64位 2.安装时需联网 步骤1.下载并安装libunwind软件包(是TCMalloc依赖包)2.下载并安装TCMalloc3.下载并安装redis4.配置

脚本功能

redis单机单实例一键安装脚本

注意事项

1.仅适用于Linux/Centos 64位

2.安装时需联网

步骤 1.下载并安装libunwind软件包(是TCMalloc依赖包) 2.下载并安装TCMalloc 3.下载并安装redis 4.配置redis 5.准备redis启动停止脚本 6.启动redis   脚本内容  
  • #!/bin/bash 
  •  
  • # 2013-1-10 LEO chanyipiaomiao@163.com 
  • # Blog: http://linux5588.blog.51cto.com 
  •  
  • # 脚本功能 
  • # redis单机单实例一键安装脚本 
  •  
  • # 注意事项 
  • # 仅适用于Linux/Centos 64位 
  • # 安装时需联网 
  •  
  • # 步骤 
  • # 1.下载并安装libunwind软件包(是TCMalloc依赖包) 
  • # 2.下载并安装TCMalloc 
  • # 3.下载并安装redis 
  • # 4.配置redis 
  • # 5.准备redis启动停止脚本 
  • # 6.启动redis 
  •  
  • #输出PATH变量 
  • export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 
  •  
  • #定义存放软件目录 
  • software="/root/software" 
  •  
  • #如果软件目录不存在则新建该目录 
  • if [[ ! -e $software ]]; then 
  •     mkdir -p $software 
  • fi 
  •  
  • #定义判断是否安装成功函数 
  • function installIsOK(){ 
  •     if [[ $2 == 0 ]]; then 
  •         echo "$1 install ......  OK !" 
  •     else 
  •         echo "$1 install ......  Failure!" 
  •         exit 1 
  •     fi 
  •  
  • #进入软件目录 
  • cd $software 
  •  
  • # 1.下载并安装libunwind软件包(是TCMalloc依赖包) 
  • libunwind='libunwind-1.1' 
  • wget http://download.savannah.gnu.org/releases/libunwind/${libunwind}.tar.gz 
  • tar zxf ${libunwind}.tar.gz 
  • cd $libunwind 
  • ./configure && make && make install 
  • if [[ $? == 0 ]]; then 
  •     installIsOK ${libunwind} 0 
  • else 
  •     installIsOK ${libunwind} 1 
  • fi 
  • cd $software 
  •  
  • # 2.下载并安装TCMalloc 
  • # TCMalloc (google-perftools) 是用于优化C++写的多线程应用,比glibc 2.3的malloc快。这个模块可以用来优化redis性能 
  • gperftools='gperftools-2.0' 
  • wget http://gperftools.googlecode.com/files/${gperftools}.tar.gz 
  • tar zxf ${gperftools}.tar.gz 
  • cd $gperftools 
  • ./configure 
  • make && make install 
  • if [[ $? == 0 ]]; then 
  •     installIsOK ${gperftools} 0 
  • else 
  •     installIsOK ${gperftools} 2 
  • fi 
  • echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf 
  • ldconfig 
  • cd $software 
  •  
  • # 3.下载并安装redis 
  • redis='redis-2.6.7' 
  • redis_dir='/usr/local/redis' 
  • wget http://redis.googlecode.com/files/${redis}.tar.gz 
  • tar zxf ${redis}.tar.gz 
  • cd $redis 
  • make PREFIX=${redis_dir} USE_TCMALLOC=yes install 
  • if [[ $? == 0 ]]; then 
  •     installIsOK ${redis} 0 
  • else 
  •     installIsOK ${redis} 3 
  • fi 
  •  
  • # 4.配置redis 
  • mkdir -p ${redis_dir}/etc 
  • mkdir -p ${redis_dir}/run 
  • mkdir -p ${redis_dir}/data/6379 
  • mkdir -p ${redis_dir}/log 
  • cp redis.conf ${redis_dir}/redis.conf 
  • #cp ${redis_dir}/redis.conf ${redis_dir}/etc/redis_6379.conf 
  •  
  • #生成配置文件 
  • redis_6379="${redis_dir}/etc/redis_6379.conf" 
  • cat >> ${redis_6379} << "EOF" 
  • daemonize yes 
  • pidfile /usr/local/redis/run/redis_6379.pid 
  • port 6379 
  • #bind 127.0.0.1 
  • timeout 300 
  • loglevel notice 
  • logfile /usr/local/redis/log/redis.log 
  • databases 16 
  • save 900 1 
  • save 300 10 
  • save 60 10000 
  • stop-writes-on-bgsave-error no 
  • rdbcompression yes 
  • rdbchecksum no 
  • dbfilename dump.rdb 
  • dir /usr/local/redis/data/6379 
  • #slave-serve-stale-data yes 
  • maxmemory 256mb 
  • maxmemory-policy volatile-lru 
  • maxmemory-samples 3 
  • appendonly yes 
  • appendfsync everysec 
  • no-appendfsync-on-rewrite no 
  • auto-aof-rewrite-percentage 100 
  • auto-aof-rewrite-min-size 64mb 
  • lua-time-limit 5000 
  • slowlog-log-slower-than 10000 
  • slowlog-max-len 1024 
  • hash-max-ziplist-entries 512 
  • hash-max-ziplist-value 64 
  • list-max-ziplist-entries 512 
  • list-max-ziplist-value 64 
  • set-max-intset-entries 512 
  • zset-max-ziplist-entries 128 
  • zset-max-ziplist-value 64 
  • activerehashing yes 
  • client-output-buffer-limit normal 0 0 0 
  • client-output-buffer-limit slave 256mb 64mb 60 
  • client-output-buffer-limit pubsub 32mb 8mb 60 
  • EOF 
  •  
  • # 5.redis启动停止脚本 
  • redis_start="/etc/rc.d/init.d/redis" 
  • cat >> ${redis_start} << "END" 
  • #!/bin/bash 
  • export PATH="/usr/local/redis/bin:$PATH" 
  • EXEC="/usr/local/redis/bin/redis-server" 
  • CLIEXEC="/usr/local/redis/bin/redis-cli" 
  • PIDFILE="/usr/local/redis/run/redis_6379.pid" 
  • CONF="/usr/local/redis/etc/redis_6379.conf" 
  • PORT="6379" 
  •  
  • case "$1" in 
  •     start) 
  •         if [ -f $$PIDFILE ] 
  •         then 
  •                 echo "$PIDFILE exists, process is already running or crashed." 
  •         else 
  •                 echo "Starting Redis server..." 
  •                 $EXEC $CONF 
  •         fi 
  •         ;; 
  •     stop) 
  •         if [ ! -f $PIDFILE ] 
  •         then 
  •                 echo "$PIDFILE does not exist, process is not running." 
  •         else 
  •                 PID=$(cat $PIDFILE
  •                 echo "Stopping ..." 
  •                 $CLIEXEC -p $PORT shutdown 
  •                 while [ -x /proc/${PID} ] 
  •                 do 
  •                     echo "Waiting for Redis to shutdown ..." 
  •                     sleep 1 
  •                 done 
  •                 echo "Redis stopped." 
  •         fi 
  •         ;; 
  •     restart) 
  •         $0 stop && $0 start 
  •         ;; 
  •     *) 
  •         echo "Usage: $0 {start|stop|restart}" >&2 
  •         exit 1 
  •         ;; 
  • esac 
  • END 
  •  
  • #增加可执行权限 
  • chmod u+x ${redis_start} 
  •  
  • # 6.启动redis 
  • ${redis_start} start 
  • if [[ $? == 0 ]]; then 
  •     echo "redis start ......  OK" 
  • else 
  •     echo "redis start ...... Failure" 
  • fi 
  •  

     

    上一篇:运维人员到底要不要学习开发?
    下一篇:没有了
    网友评论