1. 程式人生 > >腳本一鍵安裝redis實現主從復制

腳本一鍵安裝redis實現主從復制

redis自動化安裝腳本

  • 安裝腳本及配置文件上傳至家目錄即可,sh執行腳本即可選擇主從
    #!/bin/bash
    #Description:atuo install redis
    #Date:2018.4.11
  • Download_redis=http://download.redis.io/releases/redis-3.2.1.tar.gz
    dir1=/opt
    redis=redis-3.2.1
    redis_conf1=/usr/local/redis-6379/redis.conf
    redis_conf2=/usr/local/redis-6380/redis.conf
    FILE1=$HOME/6379.conf
    FILE2=$HOME/6380.conf
    dir2=/server/scripts/redis

    count=ps -ef|grep redis|grep -v grep| wc -l

    install_yum () {
    echo -e "\033[41;37m <===開始安裝redis依賴 軟件,請稍等...===> \033[0m"
    sleep 2
    yum install -y gcc wget
    }

    install_dir () {
    cd $dir1
    wget -q $Download_redis
    echo -e "\033[41;37m <===redis下載中,請稍後...===> \033[0m"
    tar xf redis-3.2.1.tar.gz -C /usr/local

    cd /usr/local/$redis
    make
    make PREFIX=${redis_setup_dir} install
    if [ echo $? -eq 0 ];then
    echo -e "\e[1;32m redis安裝成功. \e[0m"
    elif [ echo $? -ne 0 ];then
    echo -e "\e[1;31m redis安裝失敗,請檢查環境. \e[0m"
    exit
    fi
    sleep 1
    }

    select_or () {
    echo "---------------------------------------------------------------

    select Master Slave
    1 Master
    2 Slave
    ----------------------------------------------------------------"

    read input
    
    case "$input" in 
         1)
          mv /usr/local/$redis /usr/local/redis-6379
          sleep 1
          cd /usr/local/redis-6379
          cp -f redis.conf redis.conf.bak
          cat "$HOME/6379.conf" >$redis_conf1
          /usr/local/redis-6379/src/redis-server /usr/local/redis-6379/redis.conf &
          sleep 3
          ;;
         2)
          mv /usr/local/$redis /usr/local/redis-6380
          sleep 1
          cd /usr/local/redis-6380
          cp -f redis.conf redis.conf.bak
          cat "$HOME/6380.conf" >$redis_conf2
          /usr/local/redis-6380/src/redis-server /usr/local/redi

    s-6380/redis.conf &
    sleep 3
    ;;
    *)
    echo "---------------------------------------------------------------
    select Master Slave
    1 Master
    2 Slave
    ----------------------------------------------------------------"
    esac
    }

    count_conf () {
    if [ $count -gt 1 ];then
    echo -e "\e[1;32m redis is running \e[0m"
    elif [ $count -le 1 ];then
    echo -e "\e[1;31m redis is not running \e[0m"
    fi
    }

    install_yum
    install_dir
    select_or
    count_conf


    2.主配置文件
    daemonize yes
    pidfile /usr/local/redis-6379/run/redis.pid
    bind 0.0.0.0
    port 6379
    timeout 300
    tcp-keepalive 0
    loglevel notice
    #logfile stdout
    databases 16
    unixsocketperm 0
    maxmemory 2000000000
    maxmemory-policy volatile-lru
    maxmemory-samples 3
    maxclients 10000
    #save 900 1
    #save 300 10
    #save 60 10000
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename dump.rdb
    slave-serve-stale-data yes
    slave-read-only yes
    repl-ping-slave-period 10
    repl-timeout 60
    repl-disable-tcp-nodelay no
    slave-priority 100
    appendonly no
    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
    hz 10


    3.從配置文件
    daemonize yes
    pidfile /usr/local/redis-6380/run/redis.pid
    port 6380
    timeout 300
    tcp-keepalive 0
    loglevel notice
    #logfile stdout
    databases 16
    unixsocketperm 0
    maxmemory 2000000000
    maxmemory-policy volatile-lru
    maxmemory-samples 3
    maxclients 10000
    #save 900 1
    #save 300 10
    #save 60 10000
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename dump.rdb
    slaveof 192.168.1.42 6379 (根據你實際的本地環境配置為主的ip 及端口)
    slave-serve-stale-data yes
    slave-read-only yes
    repl-ping-slave-period 10
    repl-timeout 60
    repl-disable-tcp-nodelay no
    slave-priority 100
    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
    hz 10

    腳本一鍵安裝redis實現主從復制