redis集群搭建

在测试环境搭建三个主节点,三个从节点的redis集群。三台服务器,操作系统:centos7,redis版本:3.2.0。

每台机器上有两个节点,一个主节点,一个从节点,所以每台机器上需要redis占用两个端口启动,分别是6379、6380。

 

安装步骤:

  • 第一步:登录其中一台机器(我登录的是cdh1),进入到安装目录(我的安装目录是 /appdata/tools,请修改为自己的安装目录)。
cd /appdata/tools/
图1.1 进入目录

 

  • 第二步:使用下面的命令,下载redis压缩包,出现图1.2,下载成功。
wget http://download.redis.io/releases/redis-3.2.0.tar.gz
图1.2 下载压缩包

 

  • 第三步:使用如下命令,解压缩。
tar -zxvf redis-3.2.0.tar.gz
  • 第四步:建立软链接。
ln -s redis-3.2.0 redis
  • 第五步:进入到redis目录,编译,如图1.3。
cd redis
make
图1.3 进入redis目录编译源码
图1.4 编译成功

 

  • 第六步:在redis目录下,新建目录,用来存放分布式redis的配置、节点信息、日志信息等文件。6379文件夹用来存放在本台机器上使用6379端口启动redis的相关文件,6380存放6380端口启动redis的相关文件。
mkdir cluster-conf
cd cluster-conf/
mkdir 6379
mkdir 6380
图1.5 新建目录

 

  • 第七步:把配置文件copy到6379、6380文件夹下,并修改相关配置。
cp ../redis.conf 6379/
cp ../redis.conf 6380/
cd 6379
vim redis.conf
cd ../6380
vim redis.conf
图1.6 修改6379端口对应redis的配置文件

6379文件夹下修改以下配置:

# 把127.0.0.1改为本机ip,否则不能远程访问,切记不可只注释,否则加入节点时,或出现地址无效的error
bind 192.168.1.11

# 端口号,默认6379,不用改变
port 6379

# 指定记录日志的文件
logfile "/appdata/tools/redis/cluster-conf/6379/redis.log"

# 该目录要事先创建好,相关数据会保存在这个目录
dir /appdata/tools/redis/cluster-conf/6379/

# 是否开启集群,默认被注释,应该打开注释
cluster-enabled yes

# 集群配置文件的名称,每个节点都会有一个此文件,这个文件会由reids自动生成
cluster-config-file nodes.conf

# 节点互连超时的阈值,毫秒
cluster-node-timeout 5000

# 默认redis使用的时rdb方式持久化,这种方式在许多应用中已经足够使用,
# 但是redis如果中途宕机,会导致可能有几分钟的数据丢失,
# 根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性,
# redis会把每次写入的数据在接收后都写入appendonly.aof文件,
# 每次启动时redis都会先把这个文件的数据读入内存中,先忽略rdb文件
appendonly yes

6380文件夹下修改以下配置:

# 把127.0.0.1改为本机ip,否则不能远程访问,切记不可只注释,否则加入节点时,或出现地址无效的error
bind 192.168.1.11

# 端口号,默认6379,改为6380
port 6380

# 指定记录日志的文件
logfile "/appdata/tools/redis/cluster-conf/6380/redis.log"

# 该目录要事先创建好,相关数据会保存在这个目录
dir /appdata/tools/redis/cluster-conf/6380/

# 是否开启集群,默认被注释,应该打开注释
cluster-enabled yes

# 集群配置文件的名称,每个节点都会有一个此文件,这个文件会由reids自动生成
cluster-config-file nodes.conf

# 节点互连超时的阈值,毫秒
cluster-node-timeout 5000

# 默认redis使用的时rdb方式持久化,这种方式在许多应用中已经足够使用,
# 但是redis如果中途宕机,会导致可能有几分钟的数据丢失,
# 根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性,
# redis会把每次写入的数据在接收后都写入appendonly.aof文件,
# 每次启动时redis都会先把这个文件的数据读入内存中,先忽略rdb文件
appendonly yes

 

  • 第八步:把redis复制到另两台机器,如果没有配置免密登陆,需要输入密码。
cd /appdata/tools/
scp -r redis-3.2.0 root@cdh2:/appdata/tools/
scp -r redis-3.2.0 root@cdh3:/appdata/tools/
图1.7 复制发送

 

  • 第九步:在另两台机器建立软链接,并修改配置文件中bind的ip地址。
# 建立软链接
cd /appdata/tools/
ln -s redis-3.2.0/ redis

# cdh2上两个配置文件都修改
bind 192.168.1.12

# cdh3上两个配置文件都修改
bind 192.168.1.13

 

  • 第十步:启动三台机器上的六个redis,执行查看启动成功命令,出现如图1.9所示,启动成功。
# 在每台机器上执行
nohup /appdata/tools/redis-3.2.0/src/redis-server /appdata/tools/redis-3.2.0/cluster-conf/6379/redis.conf &

nohup /appdata/tools/redis-3.2.0/src/redis-server /appdata/tools/redis-3.2.0/cluster-conf/6380/redis.conf &

# 查看是否启动成功
ps -ef | grep redis
图1.8 启动redis
图1.9 启动成功

 

  • 第十一步:安装gem,出现图1.10,安装成功。
yum install gem
图1.10 安装成功

 

# 本地安装
gem install -l redis-3.2.2.gem

# 检验安装成功
gem list
图1.11 安装redis集群管理
图1.12 安装成功

 

  • 第十三步:把节点加入集群,出现如图1.14,加入成功。
src/redis-trib.rb create --replicas 1 192.168.1.11:6379 192.168.1.11:6380 192.168.1.12:6379 192.168.1.12:6380 192.168.1.13:6379 192.168.1.13:6380
图1.13 节点加入集群
图1.14 加入成功

 

 


遇到的问题:

  1. 在执行下面命令时,输入 yes ,遇到如下图2.1问题。
    ./src/redis-trib.rb create --replicas 1 192.168.1.11:6379 192.168.1.11:6380 192.168.1.12:6379 192.168.1.12:6380 192.168.1.13:6379 192.168.1.13:6380
    图2.1

 

原因:搭建集群前时,以前redis的旧数据和配置信息没有清理干净,或者是第一次把节点加入集群出错,第二次加入集群时,部分slot已经分配。

解决:执行命令

src/redis-cli -c -h cdh1 -p 6379

进入到集群的每个节点,执行命令 flushall  和 cluster reset,然后重新加入节点。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值