美文网首页
Redis集群搭建部署

Redis集群搭建部署

作者: 依然范特希 | 来源:发表于2018-07-11 14:52 被阅读0次

    先说明下我们本次安装的环境配置以及最终的目标:
    环境:3台CentOS-7.4.1708(阿里云主机)
    目标搭建Redis集群,其中3台主机上每个上面放两个redis节点如下:
    A主机:master节点,slave节点
    B主机:master节点,slave节点
    C主机:master节点,slave节点
    一、Redis安装
    1、下载以及解压

    cd /usr/local/
    wget http://download.redis.io/releases/redis-3.2.1.tar.gz
    tar -zxvf ./redis-3.2.1.tar.gz
    

    2、编译安装

     cd redis-3.2.1
     make && make install
    

    注意:如果报错gcc命令未找到,请如下执行gcc命令的安装

    yum install gcc
    

    如果报错zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录,先进行如下操作

    make MALLOC=libc
    

    3、创建redis节点
    在每台服务器上创建两个节点,如下:

     cd /usr/local/
     mkdir redis_cluster  //创建集群目录
     mkdir 7000 7001   //分别代表两个节点    其对应端口 7000 7001 
    //copy一份配置文件到7000
    cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7000/   
    //拷贝到7001目录
    cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7001/   
    

    4、修改每个节点下redis.conf配置文件

    daemonize    yes                          //redis后台运行
    pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7002,7003
    port  7000                                //端口7000,7002,7003
    cluster-enabled  yes                      //开启集群  把注释#去掉
    cluster-config-file  nodes_7000.conf      //集群的配置  配置文件首次启动自动生成 
    cluster-node-timeout  5000                //请求超时  设置5秒够了
    appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
    

    (坑点一)
    标准的配置修改就是如上了,但是发现配置文件中bind的ip只有本地127.0.0.1并且开启了安全模式,这样就意味着,除本地之外的应用无法连接redis,那么我们将bind 127.0.0.1注释并且 protected-mode no,(这里据说可以绑定希望访问的IP而不用注释掉,注释掉的话是所有的IP都可以访问,但是我在绑定固定ip的时候无法启动了,所以就注释掉了,大家可以研究下这里或者后面我也会继续探索)如下:

    #bind 127.0.0.1
    protected-mode no
    

    4、启动redis应用
    进入各主机下启动redis节点

    cd /usr/local
    redis-server  redis_cluster/7000/redis.conf
    redis-server  redis_cluster/7001/redis.conf
    

    5、查看服务是否启动成功

     ps -ax | grep redis   #查看是否启动成功
     netstat -tnlp | grep redis #可以看到redis监听端口
    

    二、创建集群

    集群是用一个ruby写的东东搞的,笔者也没有研究,3个主机先安装下吧。

    yum -y install ruby ruby-devel rubygems rpm-build 
    

    然后 再用 gem 这个命令来安装 redis接口 gem是ruby的一个工具包

    gem install redis
    

    (坑点二)
    利用ruby --version的命令查询下ruby的版本,如果ruby的版本比较低的话这里可能会失败,失败了的话,我们就不能用yum去安装了,用下面的方法:
    1、先安装curl

    sudo yum install curl
    

    2、安装RVM

        gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
        curl -L get.rvm.io | bash -s stable
    

    3、

     source /usr/local/rvm/scripts/rvm
    

    4、查看rvm库中已知的ruby版本

     rvm list known
    
    1. 安装一个ruby版本

      rvm install 2.3.3
      
    2. 使用一个ruby版本

      rvm use 2.3.3
      
    3. 卸载一个已知版本

      rvm remove 2.0.0
      
    4. 查看当前所用版本

      ruby --version
      

    上面的步骤在3台主机上完成之后,接下来运行一下redis-trib.rb命令


    redis-trib.rb命令.png

    可以看出这个就是我们建立集群的一个命令集
    接下来我们要确保6个节点都是启动的,而且彼此之间网络都是通的
    (坑点三)
    我们要将每个主机的7000,7001端口对外开放之后,还要将7000+10000=17000以及17001的集群总线端口打开(阿里云主机配置入站规则),否则下面cluster meet操作会失败。
    以上确认完毕之后,执行下面命令建立redis之间的连接:

      /usr/local/redis-3.2.1/src/redis-trib.rb  create  --replicas  1  A主机IP:7000 A主机IP:7001  B主机IP:7000 B主机IP:7001  C主机IP:7000  C主机IP:7001
    

    然后会提示Can I set the above configuration? (type 'yes' to accept)这种提示,上面也会列出主从的以及插槽的分配策略,确认之后,输入“yes”,注意一定得是yes,不能是y,T___T....
    输入完成之后,会提示Waiting for the cluster to join.......... ,这样就是在等各个cluster回应了。然后用另外两个主机的每个redis节点登录redis-cli进行回应,如下

     redis-cli -c -p 7000(7001)
     cluster meet A主机IP 7000    
    

    都meet完成之后,如果A主机Waiting for the cluster to join..........消失了,证明已经完成搭建。
    然后查一下/usr/local/redis/src/redis-trib.rb check A主机IP:7000可以看到配置情况

    三、验证
    在A主机上用vue-cli 7000登录执行以下命令:


    设值.png

    然后到A主机7001节点查询


    image.png
    然后到各个节点查询也如此,恭喜大功告成啦~~

    附录:
    你没有看错,这里还有一个坑,笔者在Waiting for the cluster to join..........还没响应完的时候网断了,下一次继续执行创建集群命令的时候又报错了T___T,然后就是提示“ERR Slot * is already busy”这种类似的错,这种错是因为我们之前配置了一半导致的,解决的办法就是把主机上我们之前的nodes_700*.conf文件先都删除了,然后用redis-cli登录到每个节点上执行

     flushall
     cluster reset
    

    然后将6个节点都重新启动,最后再执行创建集群的命令。

    到这里就结束了,第一次搭建redis集群,有问题的地方还请大家留言。

    相关文章

      网友评论

          本文标题:Redis集群搭建部署

          本文链接:https://www.haomeiwen.com/subject/shvcpftx.html