Linux Centos7.2 redisクラスタの構築とよくある問題(アリクラウドホスト)
一、環境
1.Centos7.2 x3
2.Redisクラスタには少なくとも3つのノードが必要です.ここでは3台を配置し、1台ずつ準備します.
3.ポート番号6379-6384はアリクラウドセキュリティポリシーでポートを開通する必要があり、同時に16379-16384を開通する必要がある(クラスタバスポートはredisクライアント接続のポート+10000)
二、設置過程
1.インストールパス
2.インストールパスに入り、ダウンロードインストールコンパイルを実行する
3.ノードの構成
他のノードのプロファイルはコピーできますが、次の構成を変更する必要があります(実際のポート番号に基づいて変更します).
4.クラスタの作成
ノードを例にredisを起動
クラスタの作成にはRubyスクリプトのサポート、rubyのインストールが必要です
ノードを作成します.ipはそれぞれ3台のホストのipで、1台に2つのノードがあります.
5.テスト
三、問題のまとめ
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
次に/etc/redisの下のnodesの先頭のファイルとdumpをクリアします.rdb、redisを再起動すればいい
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を再起動すればいい