• centos7/rhel7下安装redis4.0集群


    相关介绍

    Redis从3.0版本开始支持集群!    

    集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群。

    每个节点需要开启配置文件中的cluster-enabled yes,让Redis运行在集群模式下。

         

    测试环境

    资源有限,这里使用3台虚拟机模拟6个节点(用端口区分),每台虚机2个节点,如下图:

     

    :Redis默认端口:6379,这里方便起见,设定从7001~7006来区分6个节点。

    操作步骤

    Redis下载官网:https://redis.io/

    1. 节点准备

    每台机器都先编译安装Redis 经测试,redis-3.2.9 集群搭建方法一样

    [root@server-1 ~]# tar  zxvf  redis-4.0.1.tar.gz

    [root@server-1 ~]# cd redis-4.0.1

    [root@server-1 redis-4.0.1]# make && make install    //不需要configure,直接make,别忘了系统先装好gcczlib-devel

    [root@server-1 redis-4.0.1]# redis-server  -v    //检查一下版本

    server-2和server-3操作同上;

    2. 配置每个节点

    server-1

    [root@server-1 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7001,7004}  //在/opt目录下新建一个redis-cluster文件夹,并在里面新建2个文件夹,用来区分节点

    [root@server-1 redis-4.0.1]# cp redis.conf /opt/redis-cluster/7001/redis-7001.conf

    [root@server-1 redis-4.0.1]# vim /opt/redis-cluster/7001/redis-7001.conf    //必要需要修改如下,其他细化优化的配置项可暂时保持默认

          bind 192.168.1.21             #本机IP

          port 7001                   #改为设定的端口

          daemonize yes                    #后台启动

          cluster-enabled yes          #启动集群模式

          cluster-config-file nodes-7001.conf  #集群内部配置文件,改掉端口号 

          cluster-node-timeout 15000     #节点超时时间,单位:毫秒   

    [root@server-1 redis-4.0.1]# cp redis.conf /opt/redis-cluster/7004/redis-7004.conf

    [root@server-1 redis-4.0.1]# vim /opt/redis-cluster/7004/redis-7004.conf

          bind 192.168.1.21             #本机IP

          port 7004                   #改为设定的端口

          daemonize yes                    #后台启动

          cluster-enabled yes          #启动集群模式

          cluster-config-file nodes-7004.conf  #集群内部配置文件,改掉端口号 

          cluster-node-timeout 15000     #节点超时时间,单位:毫秒

    server-2

    [root@server-2 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7002,7005}

        ......参考server-1......    

    server-3

    [root@server-3 redis-4.0.1]# mkdir -p /opt/redis-cluster/{7003,7006}

        ......参考server-1......

      

    3. 启动每个节点

    server-1

    [root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7001/redis-7001.conf

    [root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7004/redis-7004.conf

    server-2

    [root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7002/redis-7002.conf

    [root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7005/redis-7005.conf

    server-3

    [root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7003/redis-7003.conf

    [root@server-1 redis-4.0.1]# redis-server /opt/redis-cluster/7006/redis-7006.conf

        

    4. redis-trib.rb环境准备该文件存在于redis-4.0.1/src/目录中    //只需要在其中一台上执行此步骤!!

    redis-trib.rb是采用Ruby实现的Redis集群管理工具。内部通过Cluster相关命令帮助

    我们简化集群创建、检查、槽迁移和均衡等常见操作,使用之前需要安装Ruby依赖环境。

    以下安装Ruby的方法如果觉得麻烦,可以参考另一篇文章centos7/rhel7安装较高版本ruby2.2/2.3/2.4+

    ①安装Ruby

    ~]# wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gz

    ~]# tar zxvf  ruby-2.3.5.tar.gz

    ~]# cd ruby-2.3.5

    ruby-2.3.5]# ./configure  --prefix=/opt/ruby

    ruby-2.3.5]# make && make install

    ruby-2.3.5]# ln -s /opt/ruby/bin/ruby /usr/bin/ruby

    ruby-2.3.5]# ln -s /opt/ruby/bin/gem /usr/bin/gem

    ~]#ruby -v    //查看一下

    ②安装rubygem redis依赖

    ~]# wget http://rubygems.org/downloads/redis-3.3.0.gem

    ~]# gem install -l redis-3.3.0.gem

    如果这步报错,如下:

    ~]# gem install -l redis-3.3.0.gem
    ERROR: Loading command: install (LoadError)
     cannot load such file -- zlib
    ERROR: While executing gem ... (NoMethodError)
        undefined method `invoke_with_build_args' for nil:NilClass

    解决办法如下:

    yum -y install zlib-devel
    进入ruby源码文件夹,安装ruby自身提供的zlib包
    cd ruby-2.3.5/ext/zlib
    ruby ./extconf.rb
    make
    make install

    然后再次执行gem install -l redis-4.0.1.gem,正常通过显示Successfully... 。

    ③检查redis-trib.rb的可用性

    ~]# ./redis-4.0.1/src/redis-trib.rb    //如下图所示代表可用了

    5. 创建集群

    只需要执行一条长命令,如下:

    ~]#./redis-4.0.1/src/redis-trib.rb create  --replicas 1 192.168.1.21:7001 192.168.1.22:7002 192.168.1.23:7003 192.168.1.21:7004 192.168.1.22:7005 192.168.1.23:7006

    说明:--replicas参数指定集群中每个主节点配备几个从节点,这里设置为1。

       这里因为测试,只用了3台机器,如果部署节点使用不同的IP地址,redis-trib-rb会尽可能保证主从节点不分配在同一台机器下,

       因此会重新排序节点表顺序。节点列表顺序用于确定主从角色,先主节点之后是从节点。

       创建过程中首先会给出主从节点角色分配的计划,如下图:

    最后的输出报告说明:16384个槽全部被分配完,集群创建成功。

    这里需要注意给redis-trib.rb的节点地址必须是不包含任何槽/数据的节点,否则会拒绝创建集群。

      

    6. 集群完整性检查

    集群完整性指所有的槽都分配到存活的主节点上,只要16384个槽中有一个没有分配给节点则表示集群不完整。

    可以用redis-trib.rb check命令检测之前创建的集群是否成功,check命令只需要给出集群中任意一个节点地址就可以

    完成整个集群的检查工作,命令使用如下所示:

    [root@server-1 ~]# ./redis-4.0.1/src/redis-trib.rb check 192.168.1.22:7002

    结束.

        

  • 相关阅读:
    网页中添加下划线的方法汇总及优缺点
    git备注
    微信小程序封装年月日时分组件
    微信小程序底部弹窗动画
    微信小程序返回上一页的方法并传参
    微信小程序组件封装
    taro中子父传值
    taro初识一
    reactjs中使用高德地图计算两个经纬度之间的距离
    vue中使用scss
  • 原文地址:https://www.cnblogs.com/ding2016/p/7892542.html
Copyright © 2020-2023  润新知