zoukankan      html  css  js  c++  java
  • centos7 环境下搭建redis集群(包含各种错误解决)

    环境简介:centos 7  + redis-3.2.4

    redis各个版本下载:http://download.redis.io/releases/

    本次用两个服务6个节点来搭建:192.168.23.111 留个端口区分

    注意 ,redis 集群使用redis-trib.rb 必须3主3从 ,也就是6个节点!

    详细步骤:

    1:下载解压redis-3.2.4

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

    2.安装  三个节点都安装

    cd redis-3.2.4
    make && make install

    3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下

    cd src
    cp redis-trib.rb /usr/local/bin

    4.创建运行目录复制配置文件 创建6个节点redis

    复制代码

    cd /usr/local
    mkdir redis-cluster
    cd redis-cluster
    mkdir redis-3.2.4-node1 redis-3.2.4-node2 redis-3.2.4-node3 
    cd redis-3.2.4 -node1
    mkdir logs data 
    cd /usr/local/software/redis-3.2.4 
    cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node1
    cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node2
    cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node3
    cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node4
    cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node5
    cp redis.conf /usr/local/redis-cluster/redis-3.2.4-node6
    cd src 
    cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node1
    cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node2
    cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node3
    cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node4 
    cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node5 
    cp redis-cli redis-server   /usr/local/redis-cluster/redis-3.2.4-node6

    5. 6个节点分别进行如下配置

    vim /usr/local/redis-3.2.4-node1/redis.conf   //其他类似

      找到以下信息并修改

    port  7000 //端口7000,7001,7002        
    bind 192.168.23.111 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
    daemonize yes //redis后台运行
    pidfile /usr/local/redis-cluster/redis-3.2.4-node1/redis_7000.pid //pidfile文件对应7000,7001,7002
    cluster-enabled yes //开启集群 把注释#去掉
    cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
    cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
    appendonly yes  //开启aof
    logfile "/usr/local/redis-cluster/redis-3.2.4-node1/logs/redis_7001.log" //配置日志输入路劲  7000 7001 7002
    dir "/usr/local/redis-cluster/redis-3.2.4-node1/data"  //配置数据文件存放路劲
    

    6.分别运行redis

    cd /usr/local/redis-cluster/redis-3.2.4-node1
    ./redis-server redis.conf
    cd /usr/local/redis-cluster/redis-3.2.4-node2
    ./redis-server redis.conf
    cd /usr/local/redis-cluster/redis-3.2.4-node3
    ./redis-server redis.conf
    cd /usr/local/redis-cluster/redis-3.2.4-node4 
    ./redis-server redis.conf 
    cd /usr/local/redis-cluster/redis-3.2.4-node5 
    ./redis-server redis.conf 
    cd /usr/local/redis-cluster/redis-3.2.4-node6
    ./redis-server redis.conf
    

    7.检查是否运行

    ps -ef|grep redis
    

    8.使用 redis-trib.rb创建集群

       8.1 因为依赖ruby  所以先安装ruby

       

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

    当出现错误时

    ERROR:  Error installing redis:
    redis requires Ruby version >= 2.2.2.

    这一步骤中出现了bug,度娘告诉我是Ruby版本太低,需要升级版本。

      先升级ruby版本

    curl -L get.rvm.io | bash -s stable
    当出现错误时
    NOTE: GPG version 2.1.17 have a bug which cause failures during fetching keys from remote server. Please downgrade or upgrade to newer version (if available) or use the second method described above.
    获得密钥
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
    继续执行
    curl -sSL https://get.rvm.io | bash -s stable

    当出现错误信息如下:
    curl: (35) SSL connect error
    There was an error(35).
    Checking fallback: https://ftp.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.bz2
    No fallback URL could be found, try increasing timeout with:

        echo "export rvm_max_time_flag=20" >> ~/.rvmrc

    There has been an error fetching the ruby interpreter. Halting the installation.

    可能是nss版本过低

    使用命令:yum update nss

    在做redis集群时,所需要的使用ruby工具进行操作,发现在线安装的Ruby版本过低,redis支持的版本最少为2.2.2.

    在线安装ruby 
    使用yum在线安装ruby,安装的版本为2.0.0。

    yum install ruby
    ruby -v


    添加ruby仓库
    添加aliyun镜像并检测Ruby版本

    gem sources -a http://mirrors.aliyun.com/rubygems/ 


    安装RAM
    RAM(Ruby Version Manager )是一款RAM的命令行工具,可以使用RAM轻松安装,管理Ruby版本。RVM包含了Ruby的版本管理和Gem库管理(gemset)

    可以使用如下命令进行安装RAM:

    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
    curl -sSL https://get.rvm.io | bash -s stable


    出现如下信息代表安装成功: 

    更新配置文件,使其立马生效:

    source /etc/profile.d/rvm.sh


    查看RVM版本信息,如果可以代表安装成功。

    rvm -v


    接下来查看Ruby版本:

    rvm list known

    安装2.2以上就可以

    rvm install 2.5


    出现如下信息,代表安装成功: 

    验证版本:

    成功升级。

    8.2安装完成,是rvm可用

    source /usr/local/rvm/scripts/rvm
    这一步可能耗时较长,耐心等待。
    
    8.3 安装gem redis接口
    
    gem install redis
    8.6 安装rubygems
    yum install -y rubygems
    到目前为止,我们的Ruby和运行redis-trib.rb需要的环境安装完成了
    
    9.测试集群
    
    先启动所有redis然后输入命令
    redis-trib.rb create --replicas 1 192.168.23.111:7000 192.168.23.111:7001 192.168.23.111:7002 192.168.23.111:7003 192.168.23.111:7004 192.168.23.111:7005
    error 1 : 这里出现join......,记得关闭防火墙。  
    error 2: 连接失败。需要将logs和data文件先清空,进入redis  flushall  即可。在重启redis

      10 测试客户端连接

    随便进一个节点  
    redis-cli -h 192.168.23.111 -c -p 7000
    set k1 v1
    另外一个服务选一个节点 
    redis-cli -h 192.168.23.111 -c -p 7000
    get k1

    安装完毕

    如果出现not empty错误,删除data下的文件夹重启启动即可

    例如

    rm -rf redis-3.2.4-node1/data/*
    rm -rf redis-3.2.4-node2/data/*
    rm -rf redis-3.2.4-node3/data/*
    rm -rf redis-3.2.4-node4/data/*
    rm -rf redis-3.2.4-node5/data/*
    rm -rf redis-3.2.4-node6/data/*
    
    cd /usr/local/redis-cluster/redis-3.2.4-node1
    ./redis-server redis.conf
    cd /usr/local/redis-cluster/redis-3.2.4-node2
    ./redis-server redis.conf
    cd /usr/local/redis-cluster/redis-3.2.4-node3
    ./redis-server redis.conf
    cd /usr/local/redis-cluster/redis-3.2.4-node4 
    ./redis-server redis.conf 
    cd /usr/local/redis-cluster/redis-3.2.4-node5 
    ./redis-server redis.conf 
    cd /usr/local/redis-cluster/redis-3.2.4-node6
    ./redis-server redis.conf
    启动所有redis 后 执行  命令
    redis-trib.rb create --replicas 1 192.168.23.111:7000 192.168.23.111:7001 192.168.23.111:7002 192.168.23.111:7003 192.168.23.111:7004 192.168.23.111:7005
    通过 redis-cli -h 192.168.23.111 -c -p 7000 查看指定端口
    
  • 相关阅读:
    传统项目管理工具-scrum敏捷开发看板工具
    免费脑图软件
    项目管理软件收藏
    Scrum看板项目研发管理软件Leangoo- 阶段式游戏产品研发
    【Android开发日记】之入门篇(十二)——Android组件间的数据传输
    Android捕获崩溃异常
    【Android开发日记】之入门篇(十一)——Android的Intent机制
    Git的简单使用
    【Android开发日记】之入门篇(十)——Android应用配置文件解析
    【Android开发日记】之入门篇(九)——Android四大组件之ContentProvider
  • 原文地址:https://www.cnblogs.com/liclBlog/p/15349504.html
Copyright © 2011-2022 走看看