Redis集群搭建

一、Redis-Cluster简介
redis 3.0之后版本支持redis-cluster集群,它是redis官方提出的解决方案,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。

二、集群搭建要求
2.1 Redis集群至少需要三个节点,为了保证集群的高可用,每个节点 采用一主一备的方式,所以需要6台服务器。本次搭建采用一台虚拟机搭建6个redis实例的方式搭建伪集群,端口号设定为(8001-8006)
2.2 本次需要用到 redis3.0.0 ,redis-3.0.0.gem 建议ruby脚本与redis版本保持一致

三、准备工作
(1)因为Redis是C语言开发的,所以Redis 需要安装C语言的编译环境,本次采用gcc在线安装的方式

yum install gcc-c++

(2)使用yum命令安装 ruby ,本次采用ruby脚本来实现

yum install ruby
yum install rubygems

(3)将redis3.0.0和redis-3.0.0.gem 上传至linux服务器(上传步骤省略)

四、redis集群搭建具体步骤如下:
(1)创建目录 /usr/local/redis-cluster,安装6个redis实例,分别安装在以下目录

/usr/local/redis-cluster/redis-1
/usr/local/redis-cluster/redis-2
/usr/local/redis-cluster/redis-3
/usr/local/redis-cluster/redis-4
/usr/local/redis-cluster/redis-5
/usr/local/redis-cluster/redis-6

在这里插入图片描述
(2)解压并安装redis
2.1 解压

tar -zxvf redis-3.0.0.tar.gz 

2.2 进入解压目录,然后使用make命令编译源文件
make
看到输入如下结果表示编译成功:
在这里插入图片描述
以第一个redis实例为例,命令如下:

make install PREFIX=/usr/local/redis-cluster/redis-1

出现此提示表示成功,按此方法安装其余5个redis实例
在这里插入图片描述

将redis.conf文件 复制到对应的 redis实例目录中,命令如下:

[root@iZm5e27yvrkjv9saul4rrhZ redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-1/bin
[root@iZm5e27yvrkjv9saul4rrhZ redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-2/bin
[root@iZm5e27yvrkjv9saul4rrhZ redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-3/bin
[root@iZm5e27yvrkjv9saul4rrhZ redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-4/bin
[root@iZm5e27yvrkjv9saul4rrhZ redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-5/bin
[root@iZm5e27yvrkjv9saul4rrhZ redis-3.0.0]# cp redis.conf /usr/local/redis-cluster/redis-6/bin

(3)配置集群
3.1 删除快照文件dump.rdb,修改每个redis节点的配置文件redis.conf,以第一个redis实例为例,将默认端口号6379修改为8001(其余节点依次类推修改为8002—8006),由于redis默认方式为前台启动,所以需要修改为后端启动 daemonize no 改为yes,将cluster-enabled yes 前的注释去掉,表示开启集群方式,操作如下:
在这里插入图片描述
在这里插入图片描述3.2 由于有6个redis实例,每一个单独启动过于繁琐,所以进入目录:/usr/lcoal/redis-cluster/,创建一个批量启动redis节点的脚本文件,使用命令 vi redis-all.sh ,然后添加如下内容

cd redis-1/bin
./redis-server redis.conf 
cd ../..
cd redis-2/bin
./redis-server redis.conf 
cd ../..
cd redis-3/bin
./redis-server redis.conf 
cd ../..
cd redis-4/bin
./redis-server redis.conf 
cd ../..
cd redis-5/bin
./redis-server redis.conf 
cd ../..
cd redis-6/bin
./redis-server redis.conf 
cd ../..

3.3 启动redis-all.sh 脚本

./redis-all.sh

3.4使用命令查询是否启动成功

ps -ef |grep redis

在这里插入图片描述(4)安装 ruby用于搭建redis集群的脚本

gem install redis-3.0.0.gem

4.1使用 ruby 脚本搭建redis集群。
进入redis源码目录中的src目录 执行如下命令(注意:命令中的具体IP及端口,根据实际搭建的情况进行修改)

./redis-trib.rb create --replicas 1 172.31.141.28:8001 172.31.141.28:8002 172.31.141.28:8003 172.31.141.28:8004 172.31.141.28:8005 172.31.141.28:8006

在这里插入图片描述
4.2 最终出现如截图所示表示成功(注意:在执行途中需要手动输入 yes )
在这里插入图片描述
注意:redis部署在阿里云服务器,遇到执行命令后,一直waiting for the cluster to join…
1、删除掉每个节点文件下的 dump.rdb和nodes.conf文件
2、开放你redis实例端口号+10000的端口,例如redis端口号为6379,则需要开通端口号16379能够进行访问
在这里插入图片描述

4.3 验证:进入任意一个节点下(例如j进入第一个节点的bin目录下:cd /usr/local/redis-cluster/redis-1/bin)查看集群信息

./redis-cli -h 172.31.141.28 -p 8001 -c

在这里插入图片描述
如果出现 redis集群报错:(error) MOVED 解决方法 因为启动 redis-cli 时没有设置集群模式所导致,启动时使用 -c 参数来启动集群模式

查询集群中的节点信息,输入如下命令:

cluster nodes

在这里插入图片描述
五、结语
本次redis集群搭建,利用工作之外的时间进行编写,其中存在的不足,望各位及时指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值