redis3.0.3クラスタインストールの詳細手順

6752 ワード

Redisクラスタ配置ドキュメント(redhat 5システム)
(クラスタを正常に動作させるには少なくとも3つのプライマリノードが必要です.ここでは6つのredisノードを作成します.そのうち3つはプライマリノードで、3つはセカンダリノードで、対応するredisノードのipとポートの対応関係は以下の通りです.)
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
 
1:redisをダウンロードします.公式サイトは3.0.3バージョンをダウンロードして、前の2.いくつかのバージョンではクラスタモードはサポートされていません
ダウンロードアドレス:redis.io
2:サーバーのアップロード、解凍、コンパイル
tar -zxvf redis-3.0.3.tar.gz  cd /usr/local/redis-3.0.3 make make install
3:クラスタの作成に必要なディレクトリ
mkdir -p /usr/local/cluster cd /usr/local/cluster mkdir 7000 mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005  
4:プロファイルredisを変更する.conf
cp /usr/local/redis-3.0.3/redis.conf  /usr.local/cluster 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パラメータは、それぞれ対応するフォルダの名前に変更されます
5:この6つのredisインスタンスをそれぞれ起動
cd /usr/local/cluster/7000 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の起動状況ps-ef|grep redisを表示
6:redisのクラスタ作成コマンドを実行してクラスタを作成する
cd /usr/local/redis-3.0.3/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
6.1上記のコマンドを実行するときにエラーが発生します.実行するrubyのスクリプトなので、rubyの環境が必要です.
エラー内容:/usr/bin/env:ruby:No such file or directory
デフォルトの1.8.5バージョンのインストール後に問題があるため、rubyをインストールする環境は推奨されません.yum install rubyを使用してインストールすることは推奨されません.
http://download.csdn.net/detail/sasoritattoo/4355796ここからダウンロード
./configure -prefix=/usr/local/ruby  
make&&make install 6.2その後、6ステップ目のクラスタ作成コマンドを実行し、rubygemsコンポーネントが不足していることをエラーで通知し、yumを使用してインストールします.
 
エラー内容:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
http://download.csdn.net/download/zhangxueleishamo/7636527ここからダウンロード
ダウンロードして解凍し、ruby setupを直接実行します.rb
エラー内容:6.3手順6のコマンドを再度実行すると、エラーが表示され、redisとrubyのインタフェースが欠けているため、gemを使用してインストールできないことを示すメッセージが表示されます.
/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 ./redis-trib.rb:25
gem install redisしかし、エージェントがアクセスする必要があるため、ローカルインストール、ダウンロードアドレスにダウンロードできます.
 http://download.csdn.net/detail/lihcc/8722699
ダウンロード後gem install redis-3.2.1を実行する.gem  --local
6.4手順6のコマンドを再度実行し、正常に実行し、クラスタのインストールを完了する.
一般的なコマンド:
1、クラスタ方式起動redis-cli-c-p 7000-h 127.0.0.1
-cはクラスタ方式でアクセスすることを表す.
2、ノード情報
cluster nodes
情報は次のとおりです.
5f9fa58aa4eed0fef9d91c6ef3aa585f42c75cfb 10.10.77.217:7005 slave f2fc1df55219e57a5e9f436e20b6aa1680059de6 0 1438591709589 7 connected
9aac01bf0b26297d89d5cc9b3404ce40cd4fcd25 10.10.77.217:7001 myself,master - 0 0 8 connected 8192-10922 13653-16383
f2fc1df55219e57a5e9f436e20b6aa1680059de6 10.10.77.217:7000 master - 0 1438591708589 7 connected 0-8191 10923-13652
c938dfeba7edfdc7ff184d3f8d325c1df2fb5f98 10.10.77.217:7004 slave 9aac01bf0b26297d89d5cc9b3404ce40cd4fcd25 0 1438591709589 8 connected

最初の列はノードの名前を表します
3、メインノードを追加する:
マスターノードを追加:空のノード(empty node)を作成し、いくつかのslotをこの空のノードに移動します.このプロセスには現在、手動で介入する必要があります.3つのステップが必要です.
1)redisを生成する.confは新しいノードを起動し、以前に起動したノードであれば、テスト環境で必要でしょう.confファイル削除再起動
2)空のノードをクラスタに加える:ruby redis-trib.rb add-node newip:port  oldip:port
3)ノードを削除するのと同様に、新しいノードにスペースを再割り当てする
4、スレーブノードの追加
最初の2つのステップはプライマリノードを追加するのと同じで、3番目のステップは新しいノードでclusterを接続します.
redis-cli -c -p port -h newip
次にcluster replicateプライマリノードのid(c 938 dfeba 7 edfdc 7 ff 184 d 3 f 8 d 325 c 1 df 2 fb 5 f 98)を実行する
5、スレーブノードを削除する:
ruby redis-trib.rb del-node 10.10.77.217:7004 'c938dfeba7edfdc7ff184d3f8d325c1df2fb5f98' 
6、メインノードを削除する:
プライマリノードの削除は面倒ですが、ノードのすべてのslotを他のノードに移動してからノードを削除し、例えば7000の削除を7001ポートインスタンスに移動する必要があります.
1)ruby redis-trib.rb reshard 10.10.77.217:7001
このコマンドを実行すると、クラスタ内のすべてのノードのslot情報が表示され、最後にどのスロットを削除するかを示すメッセージが表示されます.
How many slots do you want to move (from 1 to 16384)?500(削除されたmasterのすべてのslot数、どれだけあるか)
What is the receiving node ID? 7001のノードid(9 aac 01 bf 0 b 26297 d 89 d 5 cc 9 b 3404 ce 40 cd 4 fcd 25)
Please enter all the source node IDs.     Type 'all' to use all the nodes as source nodes for the hash slots.     Type 'done' once you entered all the source nodes IDs. 
Source node#1:9 aac 01 bf 0 b 26297 d 89 d 5 cc 9 b 3404 ce 40 cd 4 fcd 25(masterのnode-idが削除されます)、ここでallを入力すると7001を除いてすべてのノードが削除される可能性があります.Source node 2:doneここでは2番目に削除するノードを入力することもできます.1つだけ削除する場合は、ここで直接doneで操作を行い、最後にyesを選択して実行します.
7、重要なコマンド:
1、  
CLUSTER INFO          
CLUSTER NODES              (node),           。  
2、    
CLUSTER MEET <ip> <port>   ip   port              ,          。  
CLUSTER FORGET <node_id>        node_id      。  
CLUSTER REPLICATE <node_id>          node_id          。  
CLUSTER SAVECONFIG                。  
3、 (slot)  
CLUSTER ADDSLOTS <slot> [slot ...]        (slot)  (assign)     。  
CLUSTER DELSLOTS <slot> [slot ...]                 。  
CLUSTER FLUSHSLOTS              ,                   。  
CLUSTER SETSLOT <slot> NODE <node_id>    slot     node_id      ,             ,             >,       。  
CLUSTER SETSLOT <slot> MIGRATING <node_id>        slot     node_id       。  
CLUSTER SETSLOT <slot> IMPORTING <node_id>   node_id           slot     。  
CLUSTER SETSLOT <slot> STABLE      slot    (import)    (migrate)。  
4、   
CLUSTER KEYSLOT <key>     key           。  
CLUSTER COUNTKEYSINSLOT <slot>     slot           。  
CLUSTER GETKEYSINSLOT <slot> <count>    count   slot     。  

8、クラスタの状態を検査する
ruby redis-trib.rb check 1 ip:port
9、一つのメインノードdown機の後、ノードからメインノードになり、メインノードが再起動した後、スレーブノードになる