zoukankan      html  css  js  c++  java
  • Redis3.0.5安装集群实例分享

    基于redhat linux来安装

    前置:安装了yum(因为需要装ruby等软件,使用yum install很容易就安装了,安装yum见http://eip.teamshub.com/t/3111540


    1、将【redis-3.0.5.tar.gz】放到home/redis目录;

    2、解压
    tar -zxvf redis-3.0.5.tar.gz

    3、进到目录去编译
    cd redis-3.0.5
    make

    4、创建集群需要的目录
    mkdir -p /home/redis/redis-3.0.5/cluster-test
    cd /home/redis/redis-3.0.5/cluster-test
    mkdir 7000
    mkdir 7001
    mkdir 7002
    mkdir 7003
    mkdir 7004
    mkdir 7005

    5、修改配置文件redis.conf
    cd /home/redis/redis-3.0.5/cluster-test/7000
    vi redis.conf

    ##编辑文件中的内容为下面内容:
    port 7000
    daemonize yes  #这个可有可无,得看看是什么配置项
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes

    6、将7000的redis.conf配置文件,分别拷贝到7001/7002/7003/7004/7005目录下面
    cp /home/redis/redis-3.0.5/cluster-test/7000/redis.conf /home/redis/redis-3.0.5/cluster-test/7001
    cp /home/redis/redis-3.0.5/cluster-test/7000/redis.conf /home/redis/redis-3.0.5/cluster-test/7002
    cp /home/redis/redis-3.0.5/cluster-test/7000/redis.conf /home/redis/redis-3.0.5/cluster-test/7003
    cp /home/redis/redis-3.0.5/cluster-test/7000/redis.conf /home/redis/redis-3.0.5/cluster-test/7004
    cp /home/redis/redis-3.0.5/cluster-test/7000/redis.conf /home/redis/redis-3.0.5/cluster-test/7005

    7、对上一步拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称

    8、编写redis的启动脚本,如7000
    cd /home/redis/redis-3.0.5/cluster-test/7000
    vi start7000.sh

    ##在start7000.sh中编辑如下内容并保存:
    cd /home/redis/redis-3.0.5/cluster-test/7000
    nohup /home/redis/redis-3.0.5/src/redis-server redis.conf > redis7000.log 2>&1 &

    #编辑保存好后,修改权限为可执行
    chmod 777 start7000.sh

    9、将start7000.sh的脚本,分别拷贝到7001/7002/7003/7004/7005目录下面
    cp /home/redis/redis-3.0.5/cluster-test/7000/start7000.sh /home/redis/redis-3.0.5/cluster-test/7001/start7001.sh
    cp /home/redis/redis-3.0.5/cluster-test/7000/start7000.sh /home/redis/redis-3.0.5/cluster-test/7002/start7002.sh
    cp /home/redis/redis-3.0.5/cluster-test/7000/start7000.sh /home/redis/redis-3.0.5/cluster-test/7003/start7003.sh
    cp /home/redis/redis-3.0.5/cluster-test/7000/start7000.sh /home/redis/redis-3.0.5/cluster-test/7004/start7004.sh
    cp /home/redis/redis-3.0.5/cluster-test/7000/start7000.sh /home/redis/redis-3.0.5/cluster-test/7005/start7005.sh

    10、对上一步拷贝完成之后要修改7001/7002/7003/7004/7005目录下面start700X.sh文件中的port参数,分别改为对应的文件夹的名称

    11、分布启动各自路径下的start700X.sh,启动后,可以查看进程
    [redis@localhost 7005]$ ps -ef|grep 700
    redis     6063     1  0 22:56 ?        00:00:06 /home/redis/redis-3.0.5/src/redis-server *:7000 [cluster]
    redis    28766     1  0 23:50 pts/2    00:00:00 /home/redis/redis-3.0.5/src/redis-server *:7001 [cluster]
    redis    28795     1  0 23:52 pts/2    00:00:00 /home/redis/redis-3.0.5/src/redis-server *:7002 [cluster]
    redis    28800     1  2 23:53 pts/2    00:00:00 /home/redis/redis-3.0.5/src/redis-server *:7003 [cluster]
    redis    28817     1  0 23:53 pts/2    00:00:00 /home/redis/redis-3.0.5/src/redis-server *:7004 [cluster]
    redis    28823     1  0 23:53 pts/2    00:00:00 /home/redis/redis-3.0.5/src/redis-server *:7005 [cluster]
    redis    28831 28500  0 23:53 pts/2    00:00:00 grep 700

    如在启动时遇到因为ulimit中nofile设置过小而启动不了,可以通过root用户去修改ulimit,给redis用户设置一下nofile
    vim /etc/security/limits.conf
    加入以下两行
    redis soft nofile 10240
    redis hard nofile 20480

    12、升级ruby,安装gem 
    安装gem需要ruby的版本在 1.8.7 以上,如果ruby版本低或没有装,则首先你的升级你的ruby
    [root@localhost ~]# ruby -v
    bash: ruby: command not found
    [root@localhost ~]# yum install ruby

    检查 ruby 版本: 
    [root@localhost ~]# ruby -v
    ruby 1.8.7 (2013-06-27 patchlevel 374) [i386-linux]

    检查是否安装了rubygems:
    [root@localhost ~]# rpm -qa|grep ruby
    ruby-1.8.7.374-4.el6_6.i686
    ruby-libs-1.8.7.374-4.el6_6.i686
    如果没有rubygems,就安装
    [root@localhost ~]# yum install rubygems

    13、通过gem 安装redis ruby 接口
    [root@localhost ~]# gem install redis

    14、执行redis的创建集群命令创建集群
    使用redis-trib.rb创建集群的用法说明:
    #redis-trib.rb的create子命令构建
    #--replicas 则指定了为Redis Cluster中的每个Master节点配备几个Slave节点
    #节点角色由顺序决定,先master之后是slave

    创建命令: 
    /home/redis/redis-3.0.5/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

    [redis@localhost src]$ /home/redis/redis-3.0.5/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
    >>> Creating cluster
    Connecting to node 127.0.0.1:7000: OK
    Connecting to node 127.0.0.1:7001: OK
    Connecting to node 127.0.0.1:7002: OK
    Connecting to node 127.0.0.1:7003: OK
    Connecting to node 127.0.0.1:7004: OK
    Connecting to node 127.0.0.1:7005: OK
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    127.0.0.1:7000
    127.0.0.1:7001
    127.0.0.1:7002
    Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
    Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
    Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
    M: 240ded0272e5d6827a9d99f83304a38ba656ddad 127.0.0.1:7000
       slots:0-5460 (5461 slots) master
    M: d8640ddab8d45f26d34082490cce6a567e612192 127.0.0.1:7001
       slots:5461-10922 (5462 slots) master
    M: f1a4a0983c595dcab49e8b8258538929525632e8 127.0.0.1:7002
       slots:10923-16383 (5461 slots) master
    S: feb6af7fbdd9a68712c8017b447222aac596a5ee 127.0.0.1:7003
       replicates 240ded0272e5d6827a9d99f83304a38ba656ddad
    S: 441f2fd0fb4b5fbe66929af699a20e3e989449fb 127.0.0.1:7004
       replicates d8640ddab8d45f26d34082490cce6a567e612192
    S: cc16895d326c29bc159ddf6ca10dcfa04762d984 127.0.0.1:7005
       replicates f1a4a0983c595dcab49e8b8258538929525632e8
    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 127.0.0.1:7000)
    M: 240ded0272e5d6827a9d99f83304a38ba656ddad 127.0.0.1:7000
       slots:0-5460 (5461 slots) master
    M: d8640ddab8d45f26d34082490cce6a567e612192 127.0.0.1:7001
       slots:5461-10922 (5462 slots) master
    M: f1a4a0983c595dcab49e8b8258538929525632e8 127.0.0.1:7002
       slots:10923-16383 (5461 slots) master
    M: feb6af7fbdd9a68712c8017b447222aac596a5ee 127.0.0.1:7003
       slots: (0 slots) master
       replicates 240ded0272e5d6827a9d99f83304a38ba656ddad
    M: 441f2fd0fb4b5fbe66929af699a20e3e989449fb 127.0.0.1:7004
       slots: (0 slots) master
       replicates d8640ddab8d45f26d34082490cce6a567e612192
    M: cc16895d326c29bc159ddf6ca10dcfa04762d984 127.0.0.1:7005
       slots: (0 slots) master
       replicates f1a4a0983c595dcab49e8b8258538929525632e8
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    默认是前三个节点 7000  7001  7002 是主, 后3个节点 7003  7004   7005 是从

    如果需要重新分配,则将所有节点停止后,将以下几个文件删除:
    rm appendonly.aof  dump.rdb  nodes.conf  redis7005.log
    删除后再重新运行redis-trib.rb create命令添加组成集群。

    15、监控集群状态命令
    /home/redis/redis-3.0.5/src/redis-trib.rb check 127.0.0.1:7000

    [redis@localhost 7000]$ /home/redis/redis-3.0.5/src/redis-trib.rb check 127.0.0.1:7000
    Connecting to node 127.0.0.1:7000: OK
    Connecting to node 127.0.0.1:7003: OK
    Connecting to node 127.0.0.1:7002: OK
    Connecting to node 127.0.0.1:7005: OK
    Connecting to node 127.0.0.1:7001: OK
    Connecting to node 127.0.0.1:7004: OK
    >>> Performing Cluster Check (using node 127.0.0.1:7000)
    M: 240ded0272e5d6827a9d99f83304a38ba656ddad 127.0.0.1:7000
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    S: feb6af7fbdd9a68712c8017b447222aac596a5ee 127.0.0.1:7003
       slots: (0 slots) slave
       replicates 240ded0272e5d6827a9d99f83304a38ba656ddad
    M: f1a4a0983c595dcab49e8b8258538929525632e8 127.0.0.1:7002
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    S: cc16895d326c29bc159ddf6ca10dcfa04762d984 127.0.0.1:7005
       slots: (0 slots) slave
       replicates f1a4a0983c595dcab49e8b8258538929525632e8
    M: d8640ddab8d45f26d34082490cce6a567e612192 127.0.0.1:7001
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    S: 441f2fd0fb4b5fbe66929af699a20e3e989449fb 127.0.0.1:7004
       slots: (0 slots) slave
       replicates d8640ddab8d45f26d34082490cce6a567e612192
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    16、测试
    使用redis-cli命令进入集群环境
    /home/redis/redis-3.0.5/src/redis-cli -c -p 7000

    另外,当7000被杀掉时,7003会变为主节点;
     

  • 相关阅读:
    media query 开发总结
    整屏滚动
    移动端reset样式
    中国天气网 城市代码 sql语句
    php文章tag标签的增删
    oracle的分号和斜杠/
    php 操作 oracle lob 数据2
    php 操作 oracle lob 数据
    oracle创建用户
    php进度条
  • 原文地址:https://www.cnblogs.com/dgcx/p/4975702.html
Copyright © 2011-2022 走看看