zoukankan      html  css  js  c++  java
  • redis集群

    准备工作:

    首先必须安装redis,安装完后,安装例如以下内容:

    </pre><pre name="code" class="html"> sudo yum install ruby
     sudo yum install rubygem
     yum install -y ruby-devel ruby-docs ruby-ri ruby-rdoc  
     yum install -y rubygems  
     gem install redis


    创建集群须要的文件夹

    mkdir -p /usr.local/cluster
    cd /usr.local/cluster
    mkdir 7000
    mkdir 7001
    mkdir 7002
    mkdir 7003
    mkdir 7004
    mkdir 7005

    cp /home/sq/redis.conf /usr.local/cluster改动配置文件redis.conf

    vi redis.conf
    ##改动配置文件里的以下选项
    port 7000
    daemonize yes
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    ##改动完redis.conf配置文件里的这些配置项之后把这个配置文件分别复制到7000/7001/7002/7003/7004/7005文件夹以下
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7000
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7001
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7002
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7003
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7004
    cp /usr/local/cluster/redis.conf /usr/local/cluster/7005
     
    ##注意:拷贝完毕之后要改动7001/7002/7003/7004/7005文件夹以下redis.conf文件里的port參数,分别改为相应的文件夹的名称


    cd /usr/local/cluster/7000分别启动这6redis实例

    redis-server redis.conf
    cd /usr/local/cluster/7001
    redis-server redis.conf
    cd /usr/local/cluster/7002
    redis-server redis.conf
    cd /usr/local/cluster/7003
    redis-server redis.conf
    cd /usr/local/cluster/7004
    redis-server redis.conf
    cd /usr/local/cluster/7005
    redis-server redis.conf



    创建集群

    ./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


    报错,例如以下所看到的

    Connecting to node 127.0.0.1:7001: [ERR] Sorry, can't connect to node 127.0.0.1:7001


    下载最新的配置文件。反复上面集群命令。成功。

    >>> 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: d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 127.0.0.1:7000
       slots:0-5460 (5461 slots) master
    M: 6fc3ec10d8c2f472509c470faff2b111f37f7eea 127.0.0.1:7001
       slots:5461-10922 (5462 slots) master
    M: 889968778bf2780e9fe9f1ea89057f3bad0f5675 127.0.0.1:7002
       slots:10923-16383 (5461 slots) master
    S: 0584aa26b3fd35bbe8b03a25b2f51e99c89ae82e 127.0.0.1:7003
       replicates d8bf7d3d9f38c7616e6347a5a2d054d8fa978397
    S: a62f3805aa998b9721e66d36c62d2c0b50b74288 127.0.0.1:7004
       replicates 6fc3ec10d8c2f472509c470faff2b111f37f7eea
    S: e430fb63fce30514d4c4534f0e3e32b3287925bb 127.0.0.1:7005
       replicates 889968778bf2780e9fe9f1ea89057f3bad0f5675
    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: d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 127.0.0.1:7000 slots:0-5460 (5461 slots) master M: 6fc3ec10d8c2f472509c470faff2b111f37f7eea 127.0.0.1:7001 slots:5461-10922 (5462 slots) master M: 889968778bf2780e9fe9f1ea89057f3bad0f5675 127.0.0.1:7002 slots:10923-16383 (5461 slots) master M: 0584aa26b3fd35bbe8b03a25b2f51e99c89ae82e 127.0.0.1:7003 slots: (0 slots) master replicates d8bf7d3d9f38c7616e6347a5a2d054d8fa978397 M: a62f3805aa998b9721e66d36c62d2c0b50b74288 127.0.0.1:7004 slots: (0 slots) master replicates 6fc3ec10d8c2f472509c470faff2b111f37f7eea M: e430fb63fce30514d4c4534f0e3e32b3287925bb 127.0.0.1:7005 slots: (0 slots) master replicates 889968778bf2780e9fe9f1ea89057f3bad0f5675 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.


    測试:

    redis-cli -c -p 7000
    [root@localhost 7005]# redis-cli -c -p 7000
    
    127.0.0.1:7000> sadd sq 123
    -> Redirected to slot [13244] located at 127.0.0.1:7002
    (integer) 1
    127.0.0.1:7002> keys sq
    1) "sq"
    127.0.0.1:7002> keys *
    1) "sq"
    127.0.0.1:7002> smembers sq
    1) "123"


  • 相关阅读:
    代码块;继承;this与super关系;重载与重写对比;类的继承特点;final关键字 (Java Day08)
    变量访问;this关键字;静态;工具类;帮助文档;Math使用;Arrays使用(Java Day07)
    面向对象;类和对象;访问对象;创建对象在内存中的理解;匿名对象;封装和this (Java Day06)
    如何保证 RocketMQ 不丢失消息
    Java-String类型的参数传递问题
    图解前中后序遍历
    一文彻底理解ReentrantLock可重入锁的使用
    聊聊MySQL、HBase、ES的特点和区别
    MySQL vs Java 数据类型
    Multi-Tenancy多租户模式
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7357196.html
Copyright © 2011-2022 走看看