• redis集群搭建 Installing Redis Cluster


    简介:

    Redis的集群模式实现了数据的分布式存储,每个节点存储不同的数据,实现数据动态扩容。

    优点:无中心节点架构,数据按照slot分布在多个节点上

    缺点:不支持多数据库

    1、安装包准备

      1、redis-4.0.1.tar.gz  redis源文件

         下载地址:https://download.redis.io/releases/redis-4.0.1.tar.gz

      2、ruby-2.5.9.tar.gz  ruby安装包

    2、安装机器准备

      三台机器:192.168.43.120  192.168.43.130  192.168.43.140   3主3从,每台机器两个节点

    3、目录创建和redis编译

      a、在120机器上创建目录:/opt/soft

      b、进入soft目录,执行 wget https://download.redis.io/releases/redis-4.0.1.tar.gz 下载redis源文件

      c、执行 tar -zxvf redis-4.0.1.tar.gz 解压源文件包,解压后得到redis-4.0.1目录

      d、cd redis-4.0.1 目录,编译源文件,执行命令:make

      如果出现以下错误:

      

      说明没有gcc,运行 yum install  gcc

      再执行make命令,如果出现以下错误:

      

      则执行命令:make MALLOC=libc

    4、节点创建

      每台机器配置两个节点 7000和7001

      创建目录  mkdir cluster

      

       进入cluster目录,分别创建7000和7001目录

      

       复制配置文件,把redis.conf分别复制到7000和7001下

      

        增加配置:

      分别在7000和7001下的redis.conf添加如下配置

      

      

    bind 192.168.43.140
    port 7000
    #masterauth 123456
    #requirepass 123456 
    cluster-enabled yes
    cluster-config-file nodes-7000.conf
    cluster-node-timeout 5000
    appendonly yes

        保存退出

    5、启动节点

      执行命令分别启动7000和7001节点:

      ./src/redis-server /opt/soft/redis-4.0.1/cluster/7000/redis.conf &

      ./src/redis-server /opt/soft/redis-4.0.1/cluster/7001/redis.conf &

      启动成功如下:

      

           其它两台机器一样操作

     6、创建集群(只需要在一台机器上执行)

      a、安装ruby

      tar -zxvf ruby-2.5.9.tar.gz

      cd ruby-2.5.9/

      ./configure --prefix=/usr/local/ruby

      make && make install

      查看安装后的版本

      /usr/local/ruby/bin/ruby -v

      设置环境变量

      vi /etc/profile

      export PATH=$PATH:/usr/local/ruby/bin:

      source /etc/profile

        b、安装gem

      运行命令gem install redis

      

        出现如下错误说明确实zlib库

      yum install zlib-devel

      集成zlib库到ruby环境

      cd /opt/soft/ruby-2.5.9/ext/zlib/

      ruby extconf.rb

      

        操作之前修改Makefile里的文件

      vi Makefile

      在文件最后找到:zlib.o: $(top_srcdir)/include/ruby.h   修改为  zlib.o: ../../include/ruby.h  保存退出

      执行命令 make && make install

      执行命令gem install redis 如果报一下错误

      

        安装 openssl-devel

      yum install openssl-devel

      集成openssl库到ruby

      cd /opt/soft/ruby-2.5.9/ext/openssl/

      ruby extconf.rb

      修改Makefile 里面的    

      ossl.o: $(top_srcdir)/include/ruby.h  修改为 ossl.o: ../../include/ruby.h  

      ossl_asn1.o: $(top_srcdir)/include/ruby.h 修改为 ossl_asn1.o: ../../include/ruby.h

      ossl_bio.o: $(top_srcdir)/include/ruby.h   

      ossl_bn.o: $(top_srcdir)/include/ruby.h

      ossl_cipher.o: $(top_srcdir)/include/ruby.h

      等等全部修改

      保存退出

      执行命令 make && make install

      最后 运行命令gem install redis 

      如果卡死 执行  gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

      

      c、创建集群

      ./redis-trib.rb create --replicas 1 192.168.43.120:7000 192.168.43.120:7001 192.168.43.130:7000  192.168.43.130:7001 192.168.43.140:7000 192.168.43.140:7001

       

    [root@centos3 src]# ./redis-trib.rb create --replicas 1 192.168.43.120:7000 192.168.43.120:7001 192.168.43.130:7000  192.168.43.130:7001 192.168.43.140:7000 192.168.43.140:7001
    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    192.168.43.120:7000
    192.168.43.130:7000
    192.168.43.140:7000
    Adding replica 192.168.43.130:7001 to 192.168.43.120:7000
    Adding replica 192.168.43.120:7001 to 192.168.43.130:7000
    Adding replica 192.168.43.140:7001 to 192.168.43.140:7000
    M: 5b341137f0fa22573b34a14206b3b4c625986f42 192.168.43.120:7000
       slots:0-5460 (5461 slots) master
    S: 5e162d8d5dad7e6e4fa9ecefac9b3d27e8659e33 192.168.43.120:7001
       replicates 6cbcdc0f773f5c1d895aeb33b29da449890e3064
    M: 6cbcdc0f773f5c1d895aeb33b29da449890e3064 192.168.43.130:7000
       slots:5461-10922 (5462 slots) master
    S: 6ac36c5449c77caca707b67c8d01dcc9efe3f0fa 192.168.43.130:7001
       replicates 5b341137f0fa22573b34a14206b3b4c625986f42
    M: f8c1c69d67ebecb3e6092e901fe1ca66bd097381 192.168.43.140:7000
       slots:10923-16383 (5461 slots) master
    S: 4e632fd278a48016c62255746f5128c121a71dfe 192.168.43.140:7001
       replicates f8c1c69d67ebecb3e6092e901fe1ca66bd097381
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join...
    >>> Performing Cluster Check (using node 192.168.43.120:7000)
    M: 5b341137f0fa22573b34a14206b3b4c625986f42 192.168.43.120:7000
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    S: 6ac36c5449c77caca707b67c8d01dcc9efe3f0fa 192.168.43.130:7001
       slots: (0 slots) slave
       replicates 5b341137f0fa22573b34a14206b3b4c625986f42
    M: 6cbcdc0f773f5c1d895aeb33b29da449890e3064 192.168.43.130:7000
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    M: f8c1c69d67ebecb3e6092e901fe1ca66bd097381 192.168.43.140:7000
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    S: 4e632fd278a48016c62255746f5128c121a71dfe 192.168.43.140:7001
       slots: (0 slots) slave
       replicates f8c1c69d67ebecb3e6092e901fe1ca66bd097381
    S: 5e162d8d5dad7e6e4fa9ecefac9b3d27e8659e33 192.168.43.120:7001
       slots: (0 slots) slave
       replicates 6cbcdc0f773f5c1d895aeb33b29da449890e3064
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
    

      

      最后客户端测试

      

      

      

      

  • 相关阅读:
    如何保存PDF、Word和Excel文件到数据库中
    C#添加PDF页眉——添加文本、图片到页眉
    C#数组,List,Dictionary的相互转换
    C#向PPT文档插入图片以及导出图片
    【CTSC2018】暴力写挂(边分治,虚树)
    【WC2018】通道(边分治,虚树,动态规划)
    【BZOJ2870】最长道路(边分治)
    【WC2018】州区划分(FWT,动态规划)
    【LOJ#6029】市场(线段树)
    【Hihocoder1413】Rikka with String(后缀自动机)
  • 原文地址:https://www.cnblogs.com/sunyj/p/16130470.html
Copyright © 2020-2023  润新知