1. curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    2. Node1 10.0.60.83
    3. Node2 10.0.60.84
    4. Node3 10.0.60.82

    mkdir -p /app

    cd /app

    wget http://download.redis.io/releases/redis-4.0.8.tar.gz

    tar -xf redis-4.0.8.tar.gz

    cd redis-4.0.8

    make MALLOC=libc

    make install PREFIX=/usr/local/redis

    mkdir -p /usr/local/redis/redis_cluster/7000
    mkdir -p /usr/local/redis/redis_cluster/8000
    mkdir -p /usr/local/redis/redis_cluster/9000

    
    bind 10.200.68.17
    protected-mode yes
    port 7000
    tcp-backlog 65535
    timeout 0
    tcp-keepalive 300
    daemonize yes
    supervised no
    pidfile /home/redis/run/redis_7000.pid
    loglevel notice
    logfile "/var/log/redis/redis_7000.log"
    databases 16
    save ""
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename dump.rdb
    dir /usr/local/redis/redis_cluster/7000/
    masterauth Gaiaworks@2022
    slave-serve-stale-data yes
    slave-read-only yes
    repl-diskless-sync no
    repl-diskless-sync-delay 5
    repl-disable-tcp-nodelay no
    slave-priority 100
    requirepass Gaiaworks@2022
    maxmemory 800M
    maxmemory-policy allkeys-lru
    maxmemory-samples 5
    appendonly no
    appendfilename "appendonly.aof"
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    aof-load-truncated yes
    lua-time-limit 5000
    cluster-enabled yes
    cluster-config-file /home/redis/nodes-7000.conf
    cluster-node-timeout 15000
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    latency-monitor-threshold 0
    notify-keyspace-events ""
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-size -2
    list-compress-depth 0
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    hll-sparse-max-bytes 3000
    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
    aof-rewrite-incremental-fsync yes
    
    cat /etc/sysctl.conf
    
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    
    vm.swappiness = 0
    net.ipv4.neigh.default.gc_stale_time=120
    
    
    
    net.ipv4.conf.all.rp_filter=0
    net.ipv4.conf.default.rp_filter=0
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.lo.arp_announce=2
    net.ipv4.conf.all.arp_announce=2
    
    
    
    net.ipv4.tcp_max_tw_buckets = 1440000
    net.ipv4.tcp_syncookies = 0
    net.ipv4.tcp_max_syn_backlog = 1024
    net.ipv4.tcp_synack_retries = 1
    
    net.ipv4.ip_local_port_range = 1024 65000
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    
    net.core.netdev_max_backlog = 262144
    net.ipv4.tcp_max_orphans = 262144
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_syn_retries = 1
    net.core.somaxconn = 65535
    
    net.ipv6.conf.all.disable_ipv6 = 1
    fs.file-max = 2000000
    fs.nr_open = 2000000
    vm.max_map_count = 262144
    vm.overcommit_memory = 1
    
    sysctl -p
    
    vi /etc/security/limits.conf
    ## 最下面
    *         hard    nofile      2000000
    *         soft    nofile       2000000
    
    vi /etc/security/limits.d/20-nproc.conf
    
    *          soft    nproc   unlimited
    root       soft    nproc     unlimited
    

    echo never > /sys/kernel/mm/transparent_hugepage/enabled

    vi /etc/rc.local
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    
    chmod +x /etc/rc.local
    
    vi /etc/systemd/system/redis9000.service
    
    i[Install]
    WantedBy=multi-user.target
    
    [Unit]
    Description=Redis
    After=syslog.target network.target remote-fs.target nss-lookup.target
    
    [Service]
    User=redis
    Group=redis
    Type=forking
    PIDFile=/home/redis/run/redis_9001.pid
    ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/9001/redis.conf
    ExecReload=/bin/kill -USR2 $MAINPID 
    ExecStop=/usr/local/redis/bin/redis-cli -a Gaiaworks@2020 -p 9001 shutdown
    PrivateTmp=true
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    
    tar -xf rubyrpms.tar.gz
    cd rubyrpm
    rpm -Uvh *.rpm --nodeps --force
    
    cd ../
    tar -xf ruby-2.5.1.tar.gz
    cd ruby-2.5.1
    ./configure
    make && make install
    ruby -v
    
    cd ../
    tar -xf rubygems-2.7.7.tgz
    cd rubygems-2.7.7
    ruby setup.rb
    
    cd ../
    gem install redis-3.2.2.gem
    
    ln -s /app/redis-4.0.8/src/redis-trib.rb /usr/local/redis/bin/redis-trib.rb
    
    groupadd redis
    useradd redis -g redis
    passwd redis
    mkdir -p /home/redis/run
    chown -R redis:redis /usr/local/redis
    chown -R redis:redis /var/log/redis
    chown -R redis:redis /home/redis
    
    cd /usr/local/redis/bin
    ./redis-trib.rb create --replicas 2 10.200.68.17:9001 10.200.68.17:9002 10.200.68.17:9003 10.200.68.18:9001 10.200.68.18:9002 10.200.68.18:9003 10.200.68.19:9001 10.200.68.19:9002 10.200.68.19:9003
    
    vi /usr/local/lib/ruby/gems/2.5.0/gems/redis-3.3.5/lib/redis/client.rb
    
    ## 把密码加入
    ## 重启redis节点
    
    export REDIS_HOME=/usr/local/redis/
    export PATH=$PATH:$REDIS_HOME/bin
    
    CentOS 7的gcc版本为4.8.5,Redis 6.0.5最低需要gcc4.9,因此需要升级gcc版本