• redis集群离线安装


    环境准备:

    • redis-4.0.7.tar.gz redis的安装包
    • Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上。)
    • rubygems-2.7.4.tgz 和 redis-3.2.2.gem (后面的是redis集群需要的ruby插件,rubygems是ruby的一个包管理工具,通过rubygems安装redis-3.2.2.gem。)
    • centos7,注意安装系统的基础环境,包括zlib和openssl。

    安装步骤

    1、解压编译redis

    cd /usr/local/
    mkdir redis
    将redis放到redis目录下
    tar -vxf redis-4.0.7.tar.gz
    make
    

    如果报错:
    报错

    说明系统没有安装gcc的环境,无法进行编译。

    1.1、安装gcc(如果make不报错不做这一步)

    mount /dev/cdrom /mnt
    cd /mnt/Packages (有的不在Packages目录下,这个目录下都是rpm包)
    rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm
    

    报错

    安装gcc之前需要安装其他的依赖,按照提示的依赖从上到下安装:

    rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm cpp-4.8.5-4.el7.x86_64.rpm glibc-devel-2.17-105.el7.x86_64.rpm  libmpc-1.0.1-3.el7.x86_64.rpm glibc-headers-2.17-105.el7.x86_64.rpm kernel-headers-3.10.0-327.el7.x86_64.rpm
    

    安装依赖

    1.2、make报错:

    make报错

    解决办法:make 后面带参数

    make MALLOC=libc
    make install 
    cd src
    ./redis-server
    

    开启成功

    看到这个界面redis单机版启动成功,验证:
    另外打开一个连接,到根目录下执行

    ./redis-cli
    ping
    

    如果有响应,则redis单机版本安装成功。
    响应

    2、配置集群环境(两台机器,6个节点,至少需要6个节点。)

    2.1、创建集群目录

    在redis安装目录下创建redis_cluster目录:

    mkdir redis_cluster
    在redis_cluster中创建子目录:
    cd redis_cluster/
    mkdir 7000
    mkdir 7001
    mkdir 7002
    

    2.2、配置redis.conf

    将redis.conf拷贝到这三个目录中去:(redis.conf在安装目录下)

    cp redis.conf ./redis_cluster/7000
    cp redis.conf ./redis_cluster/7001
    cp redis.conf ./redis_cluster/7002
    

    修改每个redis.conf的配置,需要修改的内容如下:

    port 7000    //配置集群的端口,分别是7000、7001、7002
    bind 本机的IP    //这里的默认配置是127.0.0.1改为内网ip。
    daemonsize yes   //允许redis在后台运行
    pidfile  /var/run/redis_7000.pid  //改成和端口一致
    cluster-enabled  yes   // 开启集群 把注释去掉
    cluster-config-file node_7000.conf  //集群的配置,和端口一致
    cluster-node-timeout  15000  // 请求超时,默认为15秒
    appendonly  yes // aof日志开启,有需要就开启,每一次写操作都会记录一条日志。
    

    修改完成之后启动服务:

    cd src/
    ./redis-server ../redis_cluster/7000/redis.conf
    

    依次启动所有节点:
    依次启动所有节点

    查看启动情况:
    启动情况

    2.3、另一台机器执行相同的操作

    另一台机器的redis端口分配为:7003、7004、7005,然后修改对应的主机ip。

    3、安装ruby环境

    3.1、下载、安装ruby

    mkdir /usr/local/ruby
    cd ruby/
    把包放到改目录下
    tar -vxf ruby-2.5.0.tar.gz
    cd ruby-2.5.0/
    ./configure
    make && make install
    

    验证:
    ruby -v
    验证ruby环境

    3.2、下载安装rubygems

    cd /usr/local
    mkdir rubygems
    把文件放到该目录下
    tar -vzxf rubygems-2.7.4.tgz
    cd rubygems-2.7.4/
    ruby setup.rb
    

    报错:
    报错

    解决办法:缺少了zlib包,需要下载并安装zlib

    3.2.1、下载安装zlib
    cd /usr/local
    mkdir zlib
    tar -vxf zlib-1.2.11.tar.gz
    cd zlib-1.2.11/
    ./configure --prefix=/usr/local/zlib
    make
    make install
    
    3.2.2、编译 ruby 中的zlib
    cd /usr/local/ruby-2.5.0/ext/zlib/
    ruby extconf.rb --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib
    make
    

    又报错:
    报错

    解决办法:执行完extconf.rb之后会生成一个Makefile vim Makefile
    解决方案

    把$(top_srcdir) 换成 ../../
    然后再make
    make
    make install

    错误都解决之后,回到安装rubygems的步骤。
    进入rubygems的安装目录,执行ruby setup.rb

    cd /usr/local/rubygems/rubygems-2.7.4
    ruby setup.rb
    

    安装成功:
    安装成功

    4、安装ruby-redis插件

    4.1.1、下载redis-3.2.2.gem

    刚刚安装rubygems就是为了安装这个插件。
    把文件放到 /usr/local/redis 目录下。

    gem install redis-3.2.2.gem
    

    又报错:
    报错

    解决办法:缺少OpenSSL,下载安装。

    4.1.2、下载安装OpenSSL

    这个问题和zlib的解决方案类似,可类比解决。

    cd /usr/local
    mkdir openssl
    tar -xvf openssl-1.0.2n.tar.gz 
    ./config -fPIC --prefix=/usr/local/openssl enable-shared
    ./config -t
    make && make install
    

    安装成功:
    安装成功

    4.1.3、编译ruby中的openssl
    cd /usr/local/ruby/ruby-2.5.0/ext/openssl/
    ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib
    make
    

    报错:
    报错

    解决办法:vim Makefile 把所有的 $(top_srcdir) 换成 ../.. 注意替换所有
    解决办法

    make && make install
    

    安装成功:
    安装成功

    然后回到安装 redis-3.2.2.gem ,在redis目录下安装。

    gem install redis-3.2.2.gem
    

    安装成功:
    安装成功

    5、启动一个集群

    cd /usr/local/redis/redis-4.0.7/src
    ./redis-trib.rb create --replicas 1 192.168.80.230:7000 192.168.80.230:7001 192.168.80.230:7002 192.168.80.231:7003 192.168.80.231:7004 192.168.80.231:7005
    

    启动成功:
    启动成功

    然后测试一下集群:
    随便连接一个节点:

    ./redis-cli -h 192.168.80.231 -p 7005 -c
    连接成功之后:
    set test1 'test001' 
    

    测试

    然后再连接另外一个节点:

    ./redis-cli -h 192.168.80.230 -p 7002 -c
    get test1
    

    测试

    集群的操作

    可以使用可视化工具查看和管理redis集群。

    1、创建一个集群

    ./redis-trib.rb create --replicas 1 192.168.80.230:7000 192.168.80.230:7001 192.168.80.230:7002 192.168.80.231:7003 192.168.80.231:7004 192.168.80.231:7005
     创建集群

    2、连接集群

    cd /usr/local/redis/redis-4.0.7/src
    ./redis-cli -p 7003 -c -h 192.168.80.231
    

    参数说明: -p port 端口 -h host 主机 -c cluster 集群

    连接进集群之后 输入ping , 如果响应了pong 表示连接集群成功:
    响应

    连接进集群之后可以查看当前集群的信息和节点的信息
    CLUSTER INFO 列出当前节点的信息
    列出当前节点

    CLUSTER NODES 列出当前集群中的节点信息
    当前节点信息

    前面一段很长的字符串就是节点的id。从这个命令可以知道哪些节点还活着,哪些节点已经挂了。端口后面带着fail的都是挂掉的节点。

    3、关闭一个节点

    退出集群连接才能关闭某一个节点:

    ./redis-cli -c -h 192.168.80.230 -p 7000 shutdown
    

    这条命令的意思是关闭230机器上端口为7000的redis节点。
    关闭之后可以连接集群去执行 CLUSTER NODES ,这个节点的状态已经是fail。

    4、节点加入、移出集群

    添加一个节点之前务必保证该节点已经启动了,如果该节点之前在创建集群时已经在集群里面了,关闭该节点然后再重新启动,该节点会自动加入集群。

     ./redis-server ../redis_cluster/7000/redis.conf 
    

    然后连接进集群,如果该节点之前不在集群中,连接集群输入cluster meet 命令就可以指定某个节点加入集群。

    CLUSTER MEET 192.168.80.230:7000
    CLUSTER forget fd72b78b1eaa430ca309bc5226d90fe67199a576 
    

    这个一长段字符串是节点的id,forget之后可以再去看节点的信息。
    节点信息

    forget之后,如果一分钟不进行任何操作,该节点会自动加入集群。

  • 相关阅读:
    括号匹配
    超级阶梯问题
    进制问题
    rwkj 1423
    next_permutation
    rwkj 1420
    uva-10392-因数分解
    uva-10305-水题-拓扑排序
    uva-10194-排序
    uva-10152-乌龟排序
  • 原文地址:https://www.cnblogs.com/hello-daocaoren/p/8431902.html
Copyright © 2020-2023  润新知