zoukankan      html  css  js  c++  java
  • redis伪集群傻瓜式搭建

    Redis集群搭建与使用

    大型开发中redis的使用必不可全,最近自己也试了下,倒是挺好玩的。由于环境搭建好多都是复制与修改,也就直接改为shell命令傻瓜操作了,写的皮毛请见谅。

    Redis下载

    这里使用的redis版本,因window版本的集群搭建需要rubby环境(因为最新的也就3多,5版本前好像都不支持cli搭建集群)。

    以下是相关需要。

    redis下载连接

    linux解压安装操作指南

    这里说下一linux安装操作

    $ wget https://download.redis.io/releases/redis.tar.gz
    $ tar xzf redis.tar.gz
    $ cd redis
    $ make
    

    集群搭建

    redis启动方式中,有一种可以通过redis-server命令 +配置文件启动redis服务。

    $ redis-server redis.conf
    

    要想搭建redis集群需要先开启一定数量的redis服务,再通过cli工具将开启的redis服务器构建为集群。集群推荐都是6+台。随后只用把配置文件分别复制到指定配置目录,启动redis-server逐个启动即可。(redis-server在make编译后的src文件目录中)

    shell构建伪集群

    #!/bin/bash  
    redis_dir="./src/redis-server";
    begin_port=$1;
    time=$2;
    #########环境搭建#################
    ##############################
    echo "环境搭建中";
    for((i=1;i<=${time};i++));
    do
            real_port="${begin_port}${i}";
            real_dir="./${begin_port}${i}";
            target_conf="${real_dir}/redis.conf";
            echo ${mydir};
            mkdir ${real_dir};
    conf_txt="
    daemonize yes 
    
    port ${real_port} 
    
    bind 0.0.0.0 
    
    dir ./ 
    
    cluster-enabled yes 
    
    cluster-config-file nodes-${real_port}.conf 
    
    cluster-node-timeout 5000 
    
    appendonly yes 
    
    protected-mode no";
    
            touch ${target_conf};
            echo -e ${conf_txt} >> ${target_conf};
            cp ./src/redis-server ${real_dir};
    done
    echo "环境搭建成功"
    ######集群运行#######
    #############################
    echo "redis服务器集群启动"
    for((j=0;j<=$2;j++));
    do
            echo "${j}号已经启动";
            real_server="./${begin_port}${j}/redis-server";
            real_conf="./${begin_port}${j}/redis.conf";
            echo ${real_server}  ${real_conf};
            ${real_server}  ${real_conf};
    done
    echo "集群启动成功"
    #########集群配置##############
    #############################
    echo "集群配置中"
    ip=127.0.0.1;
    str="";
    for((k=1;k<=time;k++));
    do
            str="${str}  ${ip}:${begin_port}${k}";
    done
    echo ${str};
    cmd="./src/redis-cli  --cluster create ${str}   --cluster-replicas 1";
    echo ${cmd};
    ${cmd};
    

    在src的同级目录创建一个shell命令,这个程序将会在同级目录下创建已端口为名字的文件夹,文件夹中存放着对应的配置文件,然后自动启动集群。

    使用如下(我的shell文件为my.sh):

    sh ./my.sh  700  6(集群数量)
    // 700为端口号的一部分,与启动的集群编号拼接为端口
    // 开启的集群数量
    

    运行后看见如下,代表集群创建成功。

    Can I set the above configuration? (type 'yes' to accept):  
    

    bug

    在云端配置的过程中,我曾一直连接不上,因为云服务端口是白名单,隐藏端口没开,一直报错。所以需要开启集群端口,否则集群会链接不上。redis有一个集群总线端口,在redis端口上+1000。

    bug见解来自于

  • 相关阅读:
    webstorm破解
    macos-WebStorm安裝
    CocoaPods安装与使用
    前端之HTML
    python调用百度语音(语音识别-斗地主语音记牌器)
    MySQL学习笔记(二)
    MySQL学习笔记(一)
    python网络编程
    计算机网络基础
    python之hashlib、configparser、logging模块
  • 原文地址:https://www.cnblogs.com/theStone/p/14488144.html
Copyright © 2011-2022 走看看