Linux Centos7.2 redisクラスタの構築とよくある問題(アリクラウドホスト)

1816 ワード

一、環境
1.Centos7.2 x3
2.Redisクラスタには少なくとも3つのノードが必要です.ここでは3台を配置し、1台ずつ準備します.
3.ポート番号6379-6384はアリクラウドセキュリティポリシーでポートを開通する必要があり、同時に16379-16384を開通する必要がある(クラスタバスポートはredisクライアント接続のポート+10000)
二、設置過程
1.インストールパス
mkdir /opt/redis

2.インストールパスに入り、ダウンロードインストールコンパイルを実行する
yum -y install gcc 
wget http://download.redis.io/releases/redis-3.2.8.tar.gz 
tar zxf redis-3.2.8.tar.gz 
cd redis-3.2.8 
make &;&; make install 

3.ノードの構成
mkdir /etc/redis
cp redis.conf /etc/redis/6379.conf 
vi /etc/redis/6379.conf 
          :
bind 0.0.0.0 #
daemonize yes #     
cluster-enabled yes #     

他のノードのプロファイルはコピーできますが、次の構成を変更する必要があります(実際のポート番号に基づいて変更します).
port 6379                              #     6379
pidfile /var/run/redis_6379.pid        #     6379
appendonly no                          #  yes
cluster-config-file nodes-6379.conf    #     6379

4.クラスタの作成
ノードを例にredisを起動
redis-server /etc/redis/6379.conf 

クラスタの作成にはRubyスクリプトのサポート、rubyのインストールが必要です
yum -y install ruby rubygems 

ノードを作成します.ipはそれぞれ3台のホストのipで、1台に2つのノードがあります.
src/redis-trib.rb create IP:6379 IP 6380 IP:6381 IP:6382 IP:6383 IP:6384

5.テスト
redis-cli -h IP -c 

三、問題のまとめ
1.カードはWaiting for the cluster to joinにある
解決:
クラスタバスポートがオープンしていません.クラスタバスポートはredisクライアント接続のポート+10000です.
2.redisクラスタの作成に失敗した後、再作成できません
/usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.2/lib/redis/client.rb:119:in `call': ERR Slot 0 is already busy (Redis::CommandError)
解決:
ノード接続アクション
 redis-cli -c -p 6379
flushdb

cluster reset

次に/etc/redisの下のnodesの先頭のファイルとdumpをクリアします.rdb、redisを再起動すればいい