redis clusterクラスタの構築プロセス(詳細)
redis clusterクラスタの構築
サーバのバージョン
CentOS Linux release 7.5.1804 (Core)
义齿
redisのダウンロード
発生したエラー
redisを変更します。conf構成
mkdir redis_cluster
mkdir 6001
mkdir 6002
#
#redis
daemonize yes
#pidfile 6001~6003
pidfile /var/run/redis_6000.pid
#6001~6003
port 7000
#
cluster-enabled yes
#
cluster-config-file nodes_6001.conf
#
cluster-node-timeout 5000
#aof
appendonly no
# , ping
bind 192.168.21.137
cp redis.conf redis_cluster/6001
cp redis.conf redis_cluster/6002
redisのインストールに成功したことを確認
cd redis_cluster/6001
redisを起動redis-server redis.conf
ps -ef |grep redis
redisプロセスが表示された場合は、redis起動成功インストールredis-trib.rb
redis-trib.rbは、クラスタを構築するための公式ツールです.
インストールruby
redis-trib.rbはrubyに基づいて書かれています
yum -y install ruby ruby-devel rubygems rpm-build
CentOS 7 yumライブラリでrubyのバージョンが2.0.0までサポートされているため、redis-trib.rbは>2.2.2バージョンが必要であるためrvmでrubygpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
find / -name rvm -print
source /usr/local/rvm/scripts/rvm
rvm list known
rvm install 2.3.3
rvm install 2.3.3
rvm use 2.3.3 --default
rvm remove 2.0.0
redisインタフェースのダウンロード
gem install redis
インストール成功の確認
クラスタの作成
redis-tribでrbクラスタの作成
./redis-trib.rb create --replicas 1 192.168.24.241:6001 192.168.24.241:6002 192.168.24.242:6001 192.168.24.242:6002 192.168.24.243:6001 192.168.24.243:6002
[root@sy1 src]# ./redis-trib.rb create --replicas 1 192.168.24.241:6001 192.168.24.241:6002 192.168.24.242:6001 192.168.24.242:6002 192.168.24.243:6001 192.168.24.243:6002
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.24.241:6001
192.168.24.242:6001
192.168.24.243:6001
Adding replica 192.168.24.242:6002 to 192.168.24.241:6001
Adding replica 192.168.24.243:6002 to 192.168.24.242:6001
Adding replica 192.168.24.241:6002 to 192.168.24.243:6001
M: f829b83670df08aa0289a5ffef9efa32386e92d2 192.168.24.241:6001
slots:0-5460 (5461 slots) master
S: 184f6dc341d0d49fbf17739233b7078606b399c3 192.168.24.241:6002
replicates 130f3b8025c422820afa222f27949cf9acdc5f24
M: 63458c1953bdaa3484c482af23b1a1fa7e6f4f71 192.168.24.242:6001
slots:5461-10922 (5462 slots) master
S: 8c8a6e54ee4c50e296f95faa7cda1cda0328fbe8 192.168.24.242:6002
replicates f829b83670df08aa0289a5ffef9efa32386e92d2
M: 130f3b8025c422820afa222f27949cf9acdc5f24 192.168.24.243:6001
slots:10923-16383 (5461 slots) master
S: 3c8b17d350ffafc7bafe1a0189deac5164fa45f1 192.168.24.243:6002
replicates 63458c1953bdaa3484c482af23b1a1fa7e6f4f71
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 192.168.24.241:6001)
M: f829b83670df08aa0289a5ffef9efa32386e92d2 192.168.24.241:6001
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: 130f3b8025c422820afa222f27949cf9acdc5f24 192.168.24.243:6001
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 184f6dc341d0d49fbf17739233b7078606b399c3 192.168.24.241:6002
slots: (0 slots) slave
replicates 130f3b8025c422820afa222f27949cf9acdc5f24
S: 3c8b17d350ffafc7bafe1a0189deac5164fa45f1 192.168.24.243:6002
slots: (0 slots) slave
replicates 63458c1953bdaa3484c482af23b1a1fa7e6f4f71
S: 8c8a6e54ee4c50e296f95faa7cda1cda0328fbe8 192.168.24.242:6002
slots: (0 slots) slave
replicates f829b83670df08aa0289a5ffef9efa32386e92d2
M: 63458c1953bdaa3484c482af23b1a1fa7e6f4f71 192.168.24.242:6001
slots:5461-10922 (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
クラスタの接続
redis-cli -h 192.168.24.241 -p 6001 -c
[root@sy2 6001]# redis-cli -h 192.168.24.241 -p 6001 -c
192.168.24.241:6001> set key1 key1
-> Redirected to slot [9189] located at 192.168.24.242:6001
OK
192.168.24.242:6001> get key1
"key1"
192.168.24.242:6001> set kk 241
-> Redirected to slot [2589] located at 192.168.24.241:6001
OK
192.168.24.241:6001> set kjkjkj 1231231
OK
192.168.24.241:6001> get kk
"241"