テンセント雲、アリ雲redis 5.0.2クラスタ構築三主三従、centos 7.6
一、今回の実験はテンセント雲で
ファイアウォールを閉じる前に、後でファイアウォールポリシーを追加します.
ホスト3台:t 1 db,t 2 db,t 3 db
システム:centos 7.6
テンセント雲の安全グループは必ず開かなければならなくて、たとえ何台のホストが1つの安全グループでも開かなければならなくて、テンセントは比較的に安全グループの権限がひどく低くて、開かないで私は半日待っていました
redisポート:31213122
redisクラスタポート:132113122注記:クラスタポートはredisポートに10000を追加し、構成する必要はありませんが、ファイアウォールまたはセキュリティグループtcpは開く必要があります.
redisバージョン:5.0.2
2、redisのインストール
ヒントデフォルトポートport:6379 3121に変更
redisファイルの位置、下の6379はすべて3121になって、後で私は位置がどこにあるかを言いません
3122インスタンスの起動を追加するには、修正3212に置くべきである.confの後ですが、インストールした以上ここに置きます.
スタートオフ再起動コマンド
ポートnetstat-apn|grep 3121の表示
三,3121.confおよび3122.conf構成
vi /etc/redis/3121.conf
リモートアクセスの許可
bind 0.0.0.0
protected-mode no
3121.confレプリケーション名3122.conf
vi /etc/redis/3122.conf
ここで最初のホストt 1 dbの構成が完了し、起動
t 2 dbはt 3 dbと同様にインストール
そして3121をconfおよび3122.confの構成が失われ、t 2 dbとt 3 dbのホストでは3121を修正するだけである.confおよび3122.confバインドip
3台のホストの6つのインスタンスが起動
四、クラスタの作成
クラスタ作成時
Waiting for the cluster to join ..........................................................このステップが長すぎると、ファイアウォールやセキュリティグループがクラスタポートを開いていない可能性があります.
クラスタの確立に失敗した場合、インスタンスに6つのファイル/var/lib/redis/3122および/var/lib/redis/3121を削除します.
パスワードなしで作成
パスワードの設定
以下はパスワードなしで作成した表示です
>>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 172.16.0.9:3122 to 172.16.0.8:3121 Adding replica 172.16.0.8:3122 to 172.16.0.9:3121 Adding replica 172.16.0.10:3122 to 172.16.0.10:3121 >>> Trying to optimize slaves allocation for anti-affinity [OK] Perfect anti-affinity obtained! M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:3121 slots:[0-5460] (5461 slots) master S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:3122 replicates 28dc96a888d087c20306231d5713672da0ec8951 M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:3121 slots:[5461-10922] (5462 slots) master S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:3122 replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9 M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.10:3121 slots:[10923-16383] (5461 slots) master S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.10:3122 replicates 1c708a6b01f860835c209e8881d3bc0934734076 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 172.16.0.8:3121) M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:3121 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.10:3122 slots: (0 slots) slave replicates 1c708a6b01f860835c209e8881d3bc0934734076 M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.10:3121 slots:[10923-16383] (5461 slots) master 1 additional replica(s) M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:3121 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:3122 slots: (0 slots) slave replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9 S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:3122 slots: (0 slots) slave replicates 28dc96a888d087c20306231d5713672da0ec8951 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
ここで成功
構成を変更してクラスタを構築し続ける
五、クラスタ状態の表示
172.16.0.8:3121 (1c708a6b...) -> 0 keys | 5461 slots | 1 slaves. 172.16.0.10:3121 (4716bd55...) -> 0 keys | 5461 slots | 1 slaves. 172.16.0.9:3121 (28dc96a8...) -> 0 keys | 5462 slots | 1 slaves. [OK] 0 keys in 3 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 172.16.0.8:31621) M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:31621 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.12:31622 slots: (0 slots) slave replicates 1c708a6b01f860835c209e8881d3bc0934734076 M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.12:31621 slots:[10923-16383] (5461 slots) master 1 additional replica(s) M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:31621 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:31622 slots: (0 slots) slave replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9 S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:31622 slots: (0 slots) slave replicates 28dc96a888d087c20306231d5713672da0ec8951 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
六、クラスタを使用して、任意のポートインスタンスでもいいです.
[root@t1db ~]# redis-cli -c -h 172.16.0.8 -p 3121 172.16.0.8:3121> set a test -> Redirected to slot [15495] located at 172.16.0.10:3121 OK 172.16.0.10:3121> get a "test"172.16.0.10:31621> exit [root@t1db ~]# redis-cli -c -h 172.16.0.8 -p 3122 172.16.0.8:3122> get a -> Redirected to slot [15495] located at 172.16.0.10:3121 "test"172.16.0.12:3121> exit [root@t1db ~]# redis-cli -c -h 172.16.0.9 -p 3122 172.16.0.9:3122> get a -> Redirected to slot [15495] located at 172.16.0.10:3121 "test"172.16.0.10:3121> exit
ファイアウォールを閉じる前に、後でファイアウォールポリシーを追加します.
ホスト3台:t 1 db,t 2 db,t 3 db
システム:centos 7.6
テンセント雲の安全グループは必ず開かなければならなくて、たとえ何台のホストが1つの安全グループでも開かなければならなくて、テンセントは比較的に安全グループの権限がひどく低くて、開かないで私は半日待っていました
redisポート:31213122
redisクラスタポート:132113122注記:クラスタポートはredisポートに10000を追加し、構成する必要はありませんが、ファイアウォールまたはセキュリティグループtcpは開く必要があります.
redisバージョン:5.0.2
2、redisのインストール
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
tar -zxvf redis-5.0.2.tar.gz
yum install -y make gcc
make
make install
cd utils/
./install_server.sh
ヒントデフォルトポートport:6379 3121に変更
redisファイルの位置、下の6379はすべて3121になって、後で私は位置がどこにあるかを言いません
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
3122インスタンスの起動を追加するには、修正3212に置くべきである.confの後ですが、インストールした以上ここに置きます.
mkdir -p /var/lib/redis/3122
cp /etc/init.d/redis_3122 /etc/init.d/redis_3122
vim /etc/init.d/redis_3122
3121 3122
chkconfig --add redis_3122
スタートオフ再起動コマンド
systemctl restart redis_3121 /
systemctl restart redis_3122 /
systemctl stop redis_3121 /
systemctl stop redis_3122 /
systemctl start redis_3121 /
systemctl start redis_3122 /
,
pkill redis-server
/usr/local/bin/redis-server /etc/redis/3121.conf
/usr/local/bin/redis-server /etc/redis/3122.conf
redis-cli -h ip( :127.0.0.1) -p 3121 shutdown /
ポートnetstat-apn|grep 3121の表示
三,3121.confおよび3122.conf構成
vi /etc/redis/3121.conf
リモートアクセスの許可
bind 0.0.0.0
protected-mode no
# IP , 0,0,0,0 ip
bind 0.0.0.0
# , , Redis
port 3121
#
daemonize yes
# pid ,
pidfile /var/run/redis_3121.pid
# ,
logfile /var/log/redis_3121.log
# ,
dir /var/lib/redis/3121
#
cluster-enabled yes
# ,
cluster-config-file nodes-3121.conf
# ,
cluster-node-timeout 15000
# AOF
appendonly yes
#
appendfsync always
# redis , ,
requirepass ssxx
# redis , , ,
masterauth ssxx
3121.confレプリケーション名3122.conf
vi /etc/redis/3122.conf
3121 3122
ここで最初のホストt 1 dbの構成が完了し、起動
systemctl start redis_3121 /
systemctl start redis_3122
t 2 dbはt 3 dbと同様にインストール
そして3121をconfおよび3122.confの構成が失われ、t 2 dbとt 3 dbのホストでは3121を修正するだけである.confおよび3122.confバインドip
bind 0.0.0.0
bind 0.0.0.0
3台のホストの6つのインスタンスが起動
四、クラスタの作成
クラスタ作成時
Waiting for the cluster to join ..........................................................このステップが長すぎると、ファイアウォールやセキュリティグループがクラスタポートを開いていない可能性があります.
クラスタの確立に失敗した場合、インスタンスに6つのファイル/var/lib/redis/3122および/var/lib/redis/3121を削除します.
dump.rdb nodes-3122.conf
dump.rdb nodes-3121.conf
パスワードなしで作成
redis-cli --cluster create 172.16.0.8:3121 172.16.0.8:3122 172.16.0.9:3121 172.16.0.9:3122 172.16.0.10:3121 172.16.0.10:3122 --cluster-replicas 1
パスワードの設定
redis-cli -a ssxx --cluster create 172.16.0.8:3121 172.16.0.8:3122 172.16.0.9:3121 172.16.0.9:3122 172.16.0.10:3121 172.16.0.10:3122 --cluster-replicas 1
以下はパスワードなしで作成した表示です
>>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 172.16.0.9:3122 to 172.16.0.8:3121 Adding replica 172.16.0.8:3122 to 172.16.0.9:3121 Adding replica 172.16.0.10:3122 to 172.16.0.10:3121 >>> Trying to optimize slaves allocation for anti-affinity [OK] Perfect anti-affinity obtained! M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:3121 slots:[0-5460] (5461 slots) master S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:3122 replicates 28dc96a888d087c20306231d5713672da0ec8951 M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:3121 slots:[5461-10922] (5462 slots) master S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:3122 replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9 M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.10:3121 slots:[10923-16383] (5461 slots) master S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.10:3122 replicates 1c708a6b01f860835c209e8881d3bc0934734076 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 172.16.0.8:3121) M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:3121 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.10:3122 slots: (0 slots) slave replicates 1c708a6b01f860835c209e8881d3bc0934734076 M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.10:3121 slots:[10923-16383] (5461 slots) master 1 additional replica(s) M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:3121 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:3122 slots: (0 slots) slave replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9 S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:3122 slots: (0 slots) slave replicates 28dc96a888d087c20306231d5713672da0ec8951 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
ここで成功
構成を変更してクラスタを構築し続ける
五、クラスタ状態の表示
redis-cli --cluster check 172.16.0.8:3121
172.16.0.8:3121 (1c708a6b...) -> 0 keys | 5461 slots | 1 slaves. 172.16.0.10:3121 (4716bd55...) -> 0 keys | 5461 slots | 1 slaves. 172.16.0.9:3121 (28dc96a8...) -> 0 keys | 5462 slots | 1 slaves. [OK] 0 keys in 3 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 172.16.0.8:31621) M: 1c708a6b01f860835c209e8881d3bc0934734076 172.16.0.8:31621 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: 7317a02362de2199e32b3c570f93149041882e6d 172.16.0.12:31622 slots: (0 slots) slave replicates 1c708a6b01f860835c209e8881d3bc0934734076 M: 4716bd5554eb9514f5ffba973682ec4bf302f7e9 172.16.0.12:31621 slots:[10923-16383] (5461 slots) master 1 additional replica(s) M: 28dc96a888d087c20306231d5713672da0ec8951 172.16.0.9:31621 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: 8696e44653ae48dc85209face86e02ba0de65e56 172.16.0.9:31622 slots: (0 slots) slave replicates 4716bd5554eb9514f5ffba973682ec4bf302f7e9 S: 2d46d434da5a196fd435f5a4ffb09b9cefbc8f58 172.16.0.8:31622 slots: (0 slots) slave replicates 28dc96a888d087c20306231d5713672da0ec8951 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.
六、クラスタを使用して、任意のポートインスタンスでもいいです.
[root@t1db ~]# redis-cli -c -h 172.16.0.8 -p 3121 172.16.0.8:3121> set a test -> Redirected to slot [15495] located at 172.16.0.10:3121 OK 172.16.0.10:3121> get a "test"172.16.0.10:31621> exit [root@t1db ~]# redis-cli -c -h 172.16.0.8 -p 3122 172.16.0.8:3122> get a -> Redirected to slot [15495] located at 172.16.0.10:3121 "test"172.16.0.12:3121> exit [root@t1db ~]# redis-cli -c -h 172.16.0.9 -p 3122 172.16.0.9:3122> get a -> Redirected to slot [15495] located at 172.16.0.10:3121 "test"172.16.0.10:3121> exit