zoukankan      html  css  js  c++  java
  • 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

    yum -y install gcc*

    cd /usr/local/

    mkdir redis

    redis放到redis目录下

    tar -vxf redis-3.2.5.tar.gz

    cd redis-3.2.5.tar.gz

    make && make install

    cd src

    ./redis-server

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

    cd /usr/local/redis/redis-3.2.5/src/

    ./redis-cli

    ping

    2、配置集群环境

    2.1、创建集群目录

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

     

    mkdir redis_cluster 

     

    redis_cluster中创建子目录:

    cd redis_cluster/

    mkdir 7000

    mkdir 7001

    mkdir 7002

    mkdir 7003

    mkdir 7004

    mkdir 7005

     

    2.2、配置redis.conf

    修改每个redis.conf的配置,

    cp redis.conf ./redis_cluster/

    cd ./redis_cluster/

    vim redis.conf

    需要修改的内容如下:

    port 7000    //配置集群的端口,分别是700070017002

    bind 本机的IP    //这里的默认配置是127.0.0.1改为内网ip

    daemonize yes   //允许redis在后台运行

    pidfile  /var/run/redis_7000.pid  //改成和端口一致

    cluster-enabled  yes   // 开启集群 把注释去掉

    cluster-config-file nodes.conf

    cluster-node-timeout 5000

    cluster-config-file node_7000.conf  //集群的配置,和端口一致

    cluster-node-timeout  15000  // 请求超时,默认为15

    appendonly  yes // aof日志开启,有需要就开启,每一次写操作都会记录一条日志。

    保存退出

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

    cp redis.conf ./7000

    cp redis.conf ./7001

    cp redis.conf .//7002

    ...

     

    修改每个目录下redis.conf文件的端口和配置

    cd 7001/

    vim redis.conf

     

    修改完成之后启动服务:

    cd ../../src/

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

     

    查看启动情况:

     

    3、安装ruby环境

    3.1、下载、安装ruby

    mkdir /usr/local/ruby

    cd ruby/

    把包放到改目录下

     

    tar -xvf ruby-2.4.1.tar

    cd ruby-2.4.1

    ./configure

    make && make install

    验证:
    ruby -v

     

    3.2、下载安装rubygems

    cd /usr/local

    mkdir rubygems

    把文件放到该目录下

    tar -vzxf rubygems-2.7.4.tgz

    cd rubygems-2.7.4/

    ruby setup.rb

     

    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 install

     

    4、安装ruby-redis插件

    4.1.1、下载redis-3.2.2.gem

    刚刚安装rubygems就是为了安装这个插件。
    把文件放到 /usr/local/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.1.155:7000 192.168.1.155:7001 192.168.1.155:7002 192.168.1.155:7003 192.168.1.155:7004 192.168.1.155:7005

     

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

    ./redis-cli -h 192.168.1.155 -p 7005 -c

    set test1 'test001'

     

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

     ./redis-cli -h 192.168.1.155 -p 7001 -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之后,如果一分钟不进行任何操作,该节点会自动加入集群。

  • 相关阅读:
    测试
    【八十一题题目合集 微软面试100题 第八十一题】
    排队问题 【微软面试100题 第八十题】
    fiddler 正则 重定向IP
    浮动div 内部元素 垂直居中
    css 诡异的多出来的几像素
    前端开发 注意问题(1)input type=“number”
    实时监听input输入
    sudo执行命令时环境变量被重置的解决方法
    laravel4 中 Redirect::intended和Redirect::guest的关系及用法
  • 原文地址:https://www.cnblogs.com/wenxingxu/p/9804283.html
Copyright © 2011-2022 走看看