redis学習-第3節-クラスタ構築


redis-クラスタ構築
Time:20181019,この文章を通じてcentos 7下redisのクラスタ構築を把握する
         Redis    ,        TCP      ,    

環境
1. redis-3.2.8
2. CentOS7
3. redis3            ,    Rube

Redisインストール
1.   redis          
    cd /home/softwares/redis
    tar -zxvf redis-3.2.8 :        
       make;make install
2.    redis-cluster,   redis      redis.conf     redis-cluster 
3.    redis-7000.conf...redis-7006.conf
4.   redis-xxx.conf
    #      7001-7006
    port 7006
    # ip    127.0.0.1,               ip,                ,        
    bind 172.16.1.131
    # redis     
    daemonize yes
    #     
    cluster-enabled yes
    # pidfile pid   7001-7006
    pidfile ./redis-7006.pid
    #      ,       
    cluster-config-file nodes_7006.conf
    #          15S     
    cluster-node-timeout 15000
    # aof   ,                    
    appendonly yes
5.   
    redis-server ../redis-cluster/redis-7001.conf
    redis-server ../redis-cluster/redis-7002.conf
    redis-server ../redis-cluster/redis-7003.conf
    redis-server ../redis-cluster/redis-7004.conf
    redis-server ../redis-cluster/redis-7005.conf
    redis-server ../redis-cluster/redis-7006.conf
6.   
    ps -ef|grep redis
 IP   redis    ;

redisクラスタ-ruby
1. Redis3        Redis      bin/redis-trib.rb    。
2.      ruby   ,     Ruby redis-trib.rb
3.    Usage: redis-trib   
           Ruby  

Rubyインストール
1. yum  ruby     。 yum -y install ruby ruby-devel rubygems rpm-build
2.    gem       redis   : gem Ruby       
    gem install redis
3. ERROR error installing redis;     Ruby  
4.    Ruby
       rvm :# curl -L get.rvm.io | bash -s stable
             : gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
          gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3     rvm
5. source  , rvm  。 source /usr/local/rvm/scripts/rvm
6.    Ruby   
    # rvm list known
    # MRI Rubies
    [ruby-]1.8.6[-p420]
    [ruby-]1.8.7[-head] # security released on head
    [ruby-]1.9.1[-p431]
    [ruby-]1.9.2[-p330]
    [ruby-]1.9.3[-p551]
    [ruby-]2.0.0[-p648]
    [ruby-]2.1[.10]
    [ruby-]2.2[.7]
    [ruby-]2.3[.4]
    [ruby-]2.4[.1]
7.   Ruby
    rvm install     (2.4.1)
8.   gem redis  ,  ! gem install redis
9.   rubygems,  ! yum install -y rubygems

Redisクラスタ構築
1.   Ruby    ,        6         。
    ruby ./redis-trib.rb create --replicas 1 172.16.1.131:7001 172.16.1.131:7002 172.16.1.131:7003 172.16.1.131:7004 172.16.1.131:7005 172.16.1.131:7006
    --replicas 1      master    1   。  6    ,   master,    slave,    6      ,    ip:port
2.     3 master    replica      

クラスタ状態の検証
1.        ,-c          : ./bin/redis-cli -h 10.93.84.53 -p 7000 -c
2.        : cluster info

原理と注意事項
redis cluster      ,         ,    ,    ,               ,     ,                    。              ,          ,                       ,             。

Redis                    ,             (hash slot)       ,                      ,                     ,       ,      slot               。

redis cluster       16384  slot,   set  key ,  CRC16          slot,     key           ,      :CRC16(key)%16384。

Redis           master  ,     master     salve        。      ,              master      。     master     ,         salve  ,  master。

      :   3        ,           ,                    ,            。

shellスクリプトの作成
          redis       :      redis-server ../redis-7001.conf ....
            Shell    touch redis.sh
    #! /bin/bash
    #    redis
    ./../redis-3.2.8/src/redis-server redis-7001.conf
    ./../redis-3.2.8/src/redis-server redis-7002.conf
    ./../redis-3.2.8/src/redis-server redis-7003.conf
    ./../redis-3.2.8/src/redis-server redis-7004.conf
    ./../redis-3.2.8/src/redis-server redis-7005.conf
    ./../redis-3.2.8/src/redis-server redis-7006.conf
    
    #      
    ruby ./../redis-3.2.8/src/redis-trib.rb create --replicas 1 172.16.1.131:7001 172.16.1.131:7002 172.16.1.131:7003 172.16.1.131:7004 172.16.1.131:7005 172.16.1.131:7006
       : chmod u+x redis.sh
     ./redis.sh