redhat 7上redis-cluster環境構築

5691 ワード

redis-clusterはredis 3である.0以降の特性は、中心思想がなく、各ノードがデータを保存し、クエリーを提供し、1つのノードfailを提供し、他のノードは同じようにclusterを構成し、ノードが再びupすると、データは他のノードから転送され、データは回復し、データの一貫性を保証します.高い信頼性も保証されています.
redis-clusterの構築は単一ノードよりも一歩多く、最後に単一ノードにクラスタを構成させることであり、このステップは他の環境rubyに関連し、構築の過程に時間がかかる場所がここにある.
また、コンフィギュレーションファイルも少し変わります.cluster-enabled、cluster-config-fileなど、clusterクラスタを構成するために必要なプロパティがいくつか追加されます.cluster環境構築プロセスは次のとおりです.
一、ソースコードコンパイルのインストールに必要な依存とruby環境に必要な依存
yum install zlib-devel openssl-devel gcc-c++

二、redisソースパッケージをダウンロードし、コンパイルを解凍する
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
tar -xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make && make install
最後のmake installはredis-server、redis-cli関連コマンドを/usr/local/binディレクトリにインストールすることで、コマンドラインの下に直接redis-serverを入力することができ、redis-cliはソースディレクトリに入ることなくredis関連コマンドを実行することができます.
makeにjemallocファイルが欠けている場合は、make MALLOC=libcを使用してコンパイルできます.
ここでredisスタンドアロン版が使えます.ここではプロファイルを少し変更します.私たちのアーキテクチャは下図のようになっています.
 
  

三、修改配置文件,增加节点。

cd /data/redis-4.0.2
mkdir config
cd config
mkdir redis-6379 redis-6387
cp /data/redis-4.0.2/redis.conf redis-6379/
cp /data/redis-4.0.2/redis.conf redis-6387/

構成を変更し、次の構成を変更します.
bind 192.168.42.131
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
appendonly yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
redisを起動
プロファイルのフォルダにアクセスして起動すると、redis-server redis-6379/redisなどのプロファイルパスを指定することで起動できません.conf
cd /data/redis-4.0.2/config/redis-6379
redis-server redis.conf
cd ../redis-6387
redis-server redis.conf

各ノードで各インスタンスを順次起動します.
起動後、redisプロセスは次のようになります.
[root@node01 redis-6379]# ps -ef |grep redis
root      79475      1  0 00:51 ?        00:00:12 redis-server 192.168.42.131:6379 [cluster]
root      79503      1  0 00:52 ?        00:00:12 redis-server 192.168.42.131:6387 [cluster]
root     112995   2557  0 03:13 pts/0    00:00:00 grep --color=auto redis
最終的に3台のマシンが2つのインスタンスを開き、対応するポートはそれぞれ6379と6387です.
四、このステップはgem install redisを通過する必要があり、gemはruby環境のコマンドであるため、rubyをインストールする必要がある.
wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.gz
tar -xzf ruby-2.4.2.tar.gz
cd ruby-2.4.2
./configure
make && make install

次にgem install redisを使用してredis依存性をインストールできます.このステップでは、zlibライブラリとopensslライブラリが欠けているという2つのエラーが発生する可能性があります.インストールしていないのではなく、rubyに統合する必要があります.rubyに統合する方法は、ruby関連ディレクトリに入り、以下の操作を実行することです.
cd /data/ruby-2.4.2/ext/zlib
ruby extconf.rb
make && make install

Opensslと同様にruby extconfを実行する.rbの後、Makefileファイルが変更されます.ここでは、ファイル内の$(top_srcdir)を../............,makeを変更しないと、関連するヘッダファイルが見つからないというメッセージが表示されます.
gem install redisでは、インストールに成功したことを示す結果が表示されます.
[root@node01 ruby-2.4.2]# gem install redis
Fetching: redis-4.0.1.gem (100%)
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redis after 1 seconds
1 gem installed

五、クラスタの構築
./redis-trib.rb create --replicas 1 192.168.42.131:6379 192.168.42.131:6387 192.168.42.132:6379 192.168.42.132:6387 192.168.42.133:6379 192.168.42.133:6387
がうまくいけば次のようになります.yesを入力し、cluster構築に成功します.
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.42.131:6379
192.168.42.132:6379
192.168.42.133:6379
Adding replica 192.168.42.132:6387 to 192.168.42.131:6379
Adding replica 192.168.42.131:6387 to 192.168.42.132:6379
Adding replica 192.168.42.133:6387 to 192.168.42.133:6379
M: ac7e3c93b7092c4e183ac01637c1faa453a217ef 192.168.42.131:6379
   slots:0-5460 (5461 slots) master
S: b036e775d1e0d92f9aad6613abdcae5023c8dc86 192.168.42.131:6387
   replicates 327d987fde60892fdfb7a9da72364639091e16e2
M: 327d987fde60892fdfb7a9da72364639091e16e2 192.168.42.132:6379
   slots:5461-10922 (5462 slots) master
S: 8869369755d8fca9f43e08bf585634dc520b1f6b 192.168.42.132:6387
   replicates ac7e3c93b7092c4e183ac01637c1faa453a217ef
M: c6b91f0c53c2de0fc135b8fca1f4060f56f3612c 192.168.42.133:6379
   slots:10923-16383 (5461 slots) master
S: 117c1907d2ceac100b6dabb6e7c9f975efbafec8 192.168.42.133:6387
   replicates c6b91f0c53c2de0fc135b8fca1f4060f56f3612c
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.42.131:6379)
M: ac7e3c93b7092c4e183ac01637c1faa453a217ef 192.168.42.131:6379
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 8869369755d8fca9f43e08bf585634dc520b1f6b 192.168.42.132:6387
   slots: (0 slots) slave
   replicates ac7e3c93b7092c4e183ac01637c1faa453a217ef
S: 117c1907d2ceac100b6dabb6e7c9f975efbafec8 192.168.42.133:6387
   slots: (0 slots) slave
   replicates c6b91f0c53c2de0fc135b8fca1f4060f56f3612c
M: 327d987fde60892fdfb7a9da72364639091e16e2 192.168.42.132:6379
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: b036e775d1e0d92f9aad6613abdcae5023c8dc86 192.168.42.131:6387
   slots: (0 slots) slave
   replicates 327d987fde60892fdfb7a9da72364639091e16e2
M: c6b91f0c53c2de0fc135b8fca1f4060f56f3612c 192.168.42.133:6379
   slots:10923-16383 (5461 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.