zoukankan      html  css  js  c++  java
  • Redis Cluster集群搭建

     

    Redis Cluster 集群搭建

     

    一、  原生方式安装:

    cd /opt

    wget http://download.redis.io/releases/redis-4.0.11.tar.gz

    tar zxvf redis-4.0.11.tar.gz

    cd redis-4.0.11

    (如果编译时报: “zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录”,可以使用make MALLOC=libc解决。)

    make && make install[或make PREFIX=/data/soft/redis install]

    redis-cli –v

    cp redis.conf redis.conf.bak

    redis-cli -h 192.168.26.52 -p 6379

    mkdir cluster

    cp redis.conf ./cluster/redis-8001.conf

    vim redis-8001.conf     //先创建未有的目录

    bind 192.168.xx.xx

    port 8001

    dir "/opt/redis-4.0.11/"

    logfile "/opt/redis-4.0.11/log/redis-8001.log"

    appendonly yes

    daemonize yes //以独立服务启动

    pidfile "/var/run/redis-8001.pid"

    dbfilename "dump.rdb"

    # requirepass 123456

    appendfilename "appendonly.aof"

    #集群模式设置

    cluster-enabled yes 

    cluster-config-file /opt/redis-4.0.11/nodes/nodes-8001.conf

    cluster-node-timeout 15000 

    复制5份配置文件,改好端口即可。

    注意:

    设置密码后,从节点三份配置文件中要多添加一条:

    #从节点同步主节点的密码

    masterauth puNE4d9wRvN+XUY=qPh7f

    不然,同步会出错。(ERROR: ....AUTHENTICATED...

    cd ../src

    ln -s redis-server /usr/local/bin/redis-server

    ln -s redis-cli /usr/local/bin/redis-cli

    ln -s redis-trib.rb /usr/local/bin/redis-trib.rb

    cd ../cluster

    redis-server redis-8001.conf &

    redis-server redis-8002.conf &

    redis-server redis-8003.conf &

    redis-server redis-8004.conf &

    redis-server redis-8005.conf &

    redis-server redis-8006.conf &

    ps -ef|grep redis

    redis-cli -h 192.168.26.52 -p 8001

    192.168.26.52:8001>cluster nodes

    …>cluster meet 192.168.26.52 8002

    …>cluster meet 192.168.26.52 8003

    …>cluster meet 192.168.26.52 8004

    …>cluster meet 192.168.26.52 8005

    …>cluster meet 192.168.26.52 8006

    …>cluster nodes

    …>set aa bb

    (error)CLUSTERDOWN...下面启动集群...

    …>cluster info

    …>exit

    #redis-cli -h 192.168.26.52 -p 8001 -a 密码 cluster addslots {0..5461}

    #redis-cli -h 192.168.26.52 -p 8002 -a 密码 cluster addslots {5462..10922}

    #redis-cli -h 192.168.26.52 -p 8003 -a 密码 cluster addslots {10923..16383}

    …>cluster info

    …>exit

    ...>cluster nodes       //查看主节点ID

    #按照一个slave复制一个master来分配

    192.168.26.52:8004>cluster replicate <要复制的主节点ID>

    192.168.26.52:8005>cluster replicate <要复制的主节点ID>

    192.168.26.52:8006>cluster replicate <要复制的主节点ID>

    搭建完成。

    二、  利用Ruby工具安装:

    1、安装Ruby:

    #wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.4.tar.gz

    tar zxvf ruby-2.4.4.tar.gz

    cd ruby-2.4.4

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

    make && make install

    cd /usr/local/ruby/

    cp bin/ruby /usr/local/bin/

    cp bin/gem /usr/local/bin/

    2、安装rubygem redis依赖:

    wget http://rubygems.org/downloads/redis-4.0.2.gem

    gem install -l redis-4.0.2.gem

    gem list check redis gem

    gem –v

    gem update --system

    gem –v

    gem list check redis gem

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

    redis-trib.rb

    cd redis-4.0.11

    mkdir cluster

    vim redis.conf

    cp redis.conf cluster/redis-8001.conf

    cd cluster

    ...

    redis-server redis-8001.conf &

    redis-server redis-8002.conf &

    redis-server redis-8003.conf &

    redis-server redis-8004.conf &

    redis-server redis-8005.conf &

    redis-server redis-8006.conf &

    ps -ef|grep redis

    #redis-trib.rb create --replicas 1 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004 12

    7.0.0.1:8005 127.0.0.1:8006

    ###########如果配置文件设置了密码,这时会启动不成功,报“[ERR] Sorry, can't connect to node 192.168.57.3:7001”的错误。

    解决=>修改ruby目录中的文件:/data/soft/ruby/lib/ruby/gems/2.4.0/gems/redis-4.0.2/lib/redis/client.rb

    ......

    class Redis

      class Client

        DEFAULTS = {

          :url => lambda { ENV["REDIS_URL"] },

          :scheme => "redis",

          :host => "127.0.0.1",

          :port => 6379,

          :path => nil,

          :timeout => 5.0,

          :password => redis配置中的实际密码,

          :db => 0,

          :driver => nil,

          :id => nil,

          :tcp_keepalive => 0,

          :reconnect_attempts => 1,

          :inherit_socket => false

    }

    ......

    然后,重新执行创建集群,yes,等待完成。

    #redis-trib.rb create --replicas 1 192.168.57.3:7001 192.168.57.3:7002 192.168.57.3:7003 192.168.57.2:7004 192.168.57.2:7005 192.168.57.2:7006

    //集群完整性检查(任一节点)

    # redis-trib.rb check 127.0.0.1:8001

    # redis-trib.rb check 127.0.0.1:8002

    ...

    附录图片:

    redis-trib.rb创建集群分配master.png

  • 相关阅读:
    目标检测评价指标
    DALSA相机SDK不完全教程
    windows 安装pycocotools
    keras第二课:后端函数
    Python中os.mkdir()与os.makedirs()的区别
    ARM知识
    神经网络结构
    PIL 中的 Image 模块
    Matplotlib使用
    keras第一课:Cifar分类
  • 原文地址:https://www.cnblogs.com/immense/p/11402429.html
Copyright © 2011-2022 走看看