zoukankan      html  css  js  c++  java
  • 单个机器部署redis集群模式(一键部署脚本)

    一、检查机器是否安装gcc、unzip、wget

    二、部署模式

    #模式1: 将所有主从节点以及sentinel节点部署在同一台机器上

    #模式2: 将一个数据节点和一个sentinel节点部署在一台机器上,如master+sentinel1,slave1+sentinel2

    #模式3: 将所有节点分开部署

    三、一键部署脚本

    1、在/root/test/目录下创建目录7001 7002 7003 7004 7005 7006 以及env

    ##7001~7006目录用来存放redis的配置文件redis.conf,env用来存放生成的公共配置文件redis-env.conf

    for ((i=1;i<=6;i++))
    do
    mkdir -p /root/test/700${i} env
    done

    2、进入env目录,创建公共配置文件redis-env.conf

    cd env
    
    echo -e "port 7001
    cluster-enabled yes
    dir /root/test/7001
    cluster-config-file nodes-7001.conf
    pidfile "/root/test/7001/redis-7001.pid"
    logfile "/root/test/7001/redis-7001.log"
    appendonly yes" > "redis-env.conf"

    注意:绑定本机IP的配置得加上注释,不然别的IP访问不了你的redis服务;也可以使用本机的内容IP

    Redis配置文件之include、network、general 可以参考https://www.jianshu.com/p/51c0ee9317b3

    3、拷贝公共配置文件redis-env.con 到7001~7006目录下,并根据端口修改redis-env.conf 传递的端口值以及文件名包含7001的字段

    for ((i=1;i<=6;i++))
    do
    
    cp /root/test/env/redis.conf /root/test/700${i}
    sed -i "s/7001/700${i}/g" /root/test/700${i}/redis.conf
    done

    4、检查wget是否已经安装

    check_results1=`rpm -qa | grep "wget"`
    if [[ $check_results1 =~ "wget" ]]
    then
        echo "package wget has already installed. "
    else
        echo "This is going to install package wget"
            yum install wget -y
    fi

    5、下载redis安装包,并解压

    #安装redis
    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    #解压安装包
    tar -zxvf redis-5.0.5.tar.gz

    6、进入解压目录,编译

    #编译
    cd redis-5.0.5
    make
    #make install

    7、启动redis各个节点

    (1)方式一:进入redis解压得到的目录,创建脚本 start.sh

    cd /root/test/redis-5.0.5
    vim start.sh
    # 内容如下

    ./src/redis-server /root/test/7001/redis.conf &
    ./src/redis-server /root/test/7002/redis.conf &
    ./src/redis-server /root/test/7003/redis.conf &
    ./src/redis-server /root/test/7004/redis.conf &
    ./src/redis-server /root/test/7005/redis.conf &
    ./src/redis-server /root/test/7006/redis.conf &

     

    保存退出,并且赋予脚本权限

    chmod +x start.sh

    检查redis启动是否成功

    ps -ef |grep redis

    (2)方式二:进入/root/test 目录创建 start.sh 脚本

    #启动redis各个节点
    for((i=1;i<=6;i++))
    do
    cd 700${i}
    /root/test/redis-5.0.5/src/redis-server /root/test/700${i}/redis.conf &
    cd ..
    done

    保存退出,并且赋予脚本权限

    chmod +x start.sh

    检查redis启动是否成功

    ps -ef |grep redis

    8、创建redis集群

    ./redis-5.0.5/src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

    现在高版本的redis-cli已经支持集群了,不再需要安装ruby了。

    9、判断 Can I set the above configuration? (type 'yes' to accept): 则输入yes

    10、一键关闭redis-server脚本

    ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill -9
    

     11、删除redis集群

    (1)关闭redis-server服务

    (2)将各个节点的cluster-config-file nodes-7001.conf 文件删除掉

    (3)重新启动redis

    (4)创建redis集群

    四、整理代码

    1、一键部署代码

    ##1、在/root/test/目录下创建目录7001 7002 7003 7004 7005 7006 以及env
    ##7001~7006目录用来存放redis的配置文件redis.conf,env用来存放生成的公共配置文件redis-env.conf
    for ((i=1;i<=6;i++))
    do
    mkdir -p /root/test/700${i} /root/test/env
    done

    ##2、进入env目录
    cd /root/test/env

    echo -e "port 7001 cluster-enabled yes dir /root/test/7001 cluster-config-file nodes-7001.conf pidfile "/root/test/7001/redis-7001.pid" logfile "/root/test/7001/redis-7001.log" appendonly yes" > "redis-env.conf"

    ##3、拷贝公共配置文件redis-env.con 到7001~7006目录下,并根据端口修改7001
    for ((i=1;i<=6;i++))
    do

    cp /root/test/env/redis-env.conf /root/test/700${i}/redis.conf
    sed -i "s/7001/700${i}/g" /root/test/700${i}/redis.conf
    done

    ##4、下载安装redis


    #检查wget
    check_results1=`rpm -qa | grep "wget"`
    if [[ $check_results1 =~ "wget" ]]
    then
    echo "package wget has already installed. "
    else
    echo "This is going to install package wget"
    yum install wget -y
    fi

    cd /root/test
    #安装redis
    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    #解压安装包
    tar -zxvf redis-5.0.5.tar.gz
    #编译
    cd /root/test/redis-5.0.5
    make
    #make install

    cd /root/test/redis-5.0.5

    echo '打印当前路径'

    pwd

    ##5启动redis各个节点
    for((i=1;i<=6;i++))
    do
    ./src/redis-server /root/test/700$i/redis.conf &
    sleep 1
    done

    cd /root/test/redis-5.0.5
    sleep 1
    #创建集群
    ./src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

    # 注意创建集群时,需要手动输入yes

     2、关闭redis-server 服务,并删除创建的7001~7006 目录下的nodes文件

    echo "正在关闭redis-server..."
    ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill -9
    ps -ef |grep redis
    sleep 3
    echo "正在删除redis的nodes文件..."
    for ((i=1;i<=6;i++))
    do
    rm -rf  /root/test/700${i}/nodes-700${i}.conf
    echo "删除700${i}目录下的nodes文件"
    done
  • 相关阅读:
    Codeforces 741D 【Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths】
    Codeforces 235C 【Cyclical Quest】
    UOJ #62.【UR #5】怎样跑得更快
    luoguP3648 [APIO2014]序列分割
    luoguP4782 [模板]2-SAT问题
    原博客已废弃
    个数可变的参数收藏
    新的一年开始。
    文件上传下载总结
    模板模式学习(转)
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/11822775.html
Copyright © 2011-2022 走看看