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 \n
port ${real_port} \n
bind 0.0.0.0 \n
dir ./ \n
cluster-enabled yes \n
cluster-config-file nodes-${real_port}.conf \n
cluster-node-timeout 5000 \n
appendonly yes \n
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见解来自于

posted @ 2021-03-05 19:48  站在巨人肩上的人  阅读(74)  评论(0编辑  收藏  举报