zoukankan      html  css  js  c++  java
  • Redis cluster

    http://redis.io/topics/cluster-tutorial

    http://www.redis.cn/topics/cluster-tutorial.html

    Creating a Redis Cluster using the create-cluster script

    If you don't want to create a Redis Cluster by configuring and executing individual instances manually as explained above, there is a much simpler system (but you'll not learn the same amount of operational details).

    Just check utils/create-cluster directory in the Redis distribution. There is a script called create-cluster inside (same name as the directory it is contained into), it's a simple bash script. In order to start a 6 nodes cluster with 3 masters and 3 slaves just type the following commands:

    1. create-cluster start
    2. create-cluster create

    Reply to yes in step 2 when the redis-trib utility wants you to accept the cluster layout.

    You can now interact with the cluster, the first node will start at port 30001 by default. When you are done, stop the cluster with:

    1. create-cluster stop.

    Please read the README inside this directory for more information on how to run the script.

    可能会出现错误:

    /usr/bin/env: ruby: No such file or directory

    解决办法:

    yum install ruby

    可能会出现:

    ../../src/redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
    from ../../src/redis-trib.rb:24

    解决办法:

    yum install rubygems

    可能会出现:

    /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
    from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from ../../src/redis-trib.rb:25

    解决办法:

    gem install redis

    [root@VM_7_88_centos create-cluster]# gem sources
    *** CURRENT SOURCES ***
    
    https://rubygems.org/
    [root@VM_7_88_centos create-cluster]# gem sources --remove https://rubygems.org/
    https://rubygems.org/ removed from sources
    [root@VM_7_88_centos create-cluster]# gem sources -a https://ruby.taobao.org/
    https://ruby.taobao.org/ added to sources
    gem 默认源ping 不通,切换淘宝gem 源
    Successfully installed redis-3.2.2
    1 gem installed
    Installing ri documentation for redis-3.2.2...
    Installing RDoc documentation for redis-3.2.2...

    好了!

    [root@AY1407171850011464e3Z create-cluster]# sh create-cluster create
    >>> Creating cluster
    >>> Performing hash slots allocation on 6 nodes...
    Using 3 masters:
    127.0.0.1:30001
    127.0.0.1:30002
    127.0.0.1:30003
    Adding replica 127.0.0.1:30004 to 127.0.0.1:30001
    Adding replica 127.0.0.1:30005 to 127.0.0.1:30002
    Adding replica 127.0.0.1:30006 to 127.0.0.1:30003
    M: 97700d3c5acf79f80fb7dbf237ba7315c29ab339 127.0.0.1:30001
       slots:0-5460 (5461 slots) master
    M: dcf9a309c34eb5bcc29eb82595d60fd71f17b623 127.0.0.1:30002
       slots:5461-10922 (5462 slots) master
    M: 7e1b46f4269d0b5eed4b2e412e62ba4dbd52dfc3 127.0.0.1:30003
       slots:10923-16383 (5461 slots) master
    S: aa586a89ed2360262b1f107be633ceab12bac838 127.0.0.1:30004
       replicates 97700d3c5acf79f80fb7dbf237ba7315c29ab339
    S: 4bb606254834745d7cf513b87cb004140462c29c 127.0.0.1:30005
       replicates dcf9a309c34eb5bcc29eb82595d60fd71f17b623
    S: dc1bb14d2056a0e81b4092f98cdc948111bcba63 127.0.0.1:30006
       replicates 7e1b46f4269d0b5eed4b2e412e62ba4dbd52dfc3
    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:30001)
    M: 97700d3c5acf79f80fb7dbf237ba7315c29ab339 127.0.0.1:30001
       slots:0-5460 (5461 slots) master
    M: dcf9a309c34eb5bcc29eb82595d60fd71f17b623 127.0.0.1:30002
       slots:5461-10922 (5462 slots) master
    M: 7e1b46f4269d0b5eed4b2e412e62ba4dbd52dfc3 127.0.0.1:30003
       slots:10923-16383 (5461 slots) master
    M: aa586a89ed2360262b1f107be633ceab12bac838 127.0.0.1:30004
       slots: (0 slots) master
       replicates 97700d3c5acf79f80fb7dbf237ba7315c29ab339
    M: 4bb606254834745d7cf513b87cb004140462c29c 127.0.0.1:30005
       slots: (0 slots) master
       replicates dcf9a309c34eb5bcc29eb82595d60fd71f17b623
    M: dc1bb14d2056a0e81b4092f98cdc948111bcba63 127.0.0.1:30006
       slots: (0 slots) master
       replicates 7e1b46f4269d0b5eed4b2e412e62ba4dbd52dfc3
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    最后设置自动启动:

    ① 修改文件rc.local

    vi /etc/rc.local

    添加这两行

    export REDIS_HOME=/usr/local/redis-stable
    $REDIS_HOME/utils/create-cluster/create-cluster start
    
    $REDIS_HOME/src/redis-server &  这行不需要,因为是集群
    $REDIS_HOME/utils/create-cluster/create-cluster create  这行也不需要,create 一次以后只需start   

    ② 修改 create-cluster 文件 (注意.conf 和.log 文件相对路径问题,见 http://www.cnblogs.com/zno2/p/5303398.html

    将全部相对路径修改为环境变量

    ../../src    ===========>       $REDIS_HOME/src

  • 相关阅读:
    Knockout.Js官网学习(visible绑定)
    Entity Framework 简单增删改操作
    Knockout.Js官网学习(数组observable)
    Knockout.Js官网学习(监控属性Observables)
    Entity Framework 简单查询
    Java 使用getClass().getResourceAsStream()方法获取资源
    Virtualbox [The headers for the current running kernel were not found] (操作过程后还是失败,显示相同问题)
    为什么要在linux命令前加上 ./
    Redis need tcl 8.5 or newer
    JDK和Tomcat部署时,版本不同的问题解决
  • 原文地址:https://www.cnblogs.com/zno2/p/5302916.html
Copyright © 2011-2022 走看看