centos7上的redis集群部署

首先下载redis源码包

http://download.redis.io/releases/

我选择的是4.0.9版本

在/home目录下解压

tar -zxvf  redis-4.0.9.tar.gz

cd 到/home/redis-4.0.9目录下编译

make报错

 

 

 

yum安装gcc

yum install gcc -y

再make产生新的错误

 

 

 执行命令

make MALLOC=libc

然后执行

make install PREFIX=/home/redis-4.0.9/redis-cluster

自动创建了redis-cluster/bin 目录,并将一些执行文件复制到bin目录

将redis.conf配置文件复制到redis-cluster目录下

 

 

 在redis-cluster目录下创建7001 7002 7003 7004 7005 7006共6个目录

并复制配置文件redis.conf,修改

  daemonize yes #后台启动
        port 7001 #修改端口号,从7001到7006
        cluster-enabled yes #开启cluster,去掉注释
        cluster-config-file nodes.conf #自动生成
        cluster-node-timeout 15000 #节点通信时间
        appendonly yes #持久化方式

 

安装redis-trib所需的 ruby脚本

注意:centos7默认的ruby版本太低(2.0),要卸载重装(最低2.2)

yum install centos-release-scl-rh  //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源

yum install rh-ruby23  -y

scl  enable  rh-ruby23 bash //必要一步

ruby -v

gem install redis

然后,redis-trib.rb这个二进制文件就可以使用了

注意:

登录的时候可能不能使用ruby相关命令,因此需要加载环境变量

设置登录时自动启动ruby

vi /etc/profile.d/rh-ruby23.sh

#!/bin/bash
scl enable rh-ruby23 bash           
export PATH=$PATH:/home/redis-4.0.9/src  

 

启动所有的redis节点

bin/redis-server 7001/redis.conf

bin/redis-server 7002/redis.conf

bin/redis-server 7003/redis.conf

bin/redis-server 7004/redis.conf

bin/redis-server 7005/redis.conf

bin/redis-server 7006/redis.conf

 

 

 注意:这里并没有创建集群

使用redis-trib.rb创建集群

注意:redis-trib.rb在redis/src目录下

./redis-trib.rb create --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

 

 

 使用create命令 --replicas 1 参数表示为每个主节点创建一个从节点,其他参数是实例的地址集合。

redis集群的测试

客户端连接集群redis-cli需要带上 -c ,redis-cli -c -p 端口号

根据redis-cluster的key值分配,name应该分配到节点7002[5461-10922]上,上面显示redis cluster自动从7001跳转到了7002节点

查看7002节点

redis-trib.rb check 127.0.0.1:7002

 

现在模拟7002节点故障

kill -9 该节点的进程号

然后再重新启用,会发现原来的从节点变成主节点,7002主节点变成从节点

 

posted @ 2020-05-21 10:32  士大夫给力  阅读(1129)  评论(0编辑  收藏  举报