Redis3.2.8クラスタインストール構成
6288 ワード
具体的には紹介しないで、直接インストールを開始します
環境の準備:
インストールの構成:
192.168.1.1.1107サーバ
構成内容は次のとおりです(redis-7000.confその他のクラス).
同様に192.168.1.1.1.1108で他のポートを構成し、構成後、それぞれ起動します.
起動プロセスとポートを2台のホストでそれぞれ表示します.
クラスタの作成
クラスタ検証
Redisクラスタは、データをマスターノードに存在させ、そのマスターと対応するsalveとの間でデータ同期を行います.データを読み出すと、コンシステンシハッシュアルゴリズムに基づいて対応するmasterノードにもデータが取得される.対応するsalveノードは、1つのmasterが削除された後にのみ起動され、masterとして機能します.
環境の準備:
2 centos , 3 , :
192.168.1.107:7000
192.168.1.107:7001
192.168.1.107:7002
192.168.1.108:7003
192.168.1.108:7004
192.168.1.108:7005
インストールの構成:
192.168.1.1.1107サーバ
#yum -y install gcc zlib ruby rubygems
#gem install redis
#wget http://download.redis.io/releases/redis-3.2.8.tar.gz
#tar -zxvf redis-3.2.8.tar.gz
#cd redis-3.2.8
#make && make install
redis-trib.rb /usr/local/bin
#cp src/redis-trib.rb /usr/local/bin/
#mkdir -p /data/redis/{conf,data,logs}
#cp redis.conf /data/redis/conf/redis-7000.conf
#cp redis.conf /data/redis/conf/redis-7001.conf
#cp redis.conf /data/redis/conf/redis-7002.conf
構成内容は次のとおりです(redis-7000.confその他のクラス).
daemonize yes
pidfile /data/redis/data/redis-7000.pid
port 7000
bind 192.168.1.107
unixsocket /data/redis/data/redis-7000.sock
unixsocketperm 700
timeout 300
loglevel verbose
logfile /data/redis/logs/redis-7000.log
databases 16
dbfilename dump-7000.rdb
dir /data/redis/data/
#aof
appendonly yes
appendfilename appendonly-7000.aof
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 80-100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
#
cluster-enabled yes
cluster-config-file /data/redis/data/nodes-7000.conf
cluster-node-timeout 5000
同様に192.168.1.1.1.1108で他のポートを構成し、構成後、それぞれ起動します.
192.168.1.107
#redis-server /data/redis/conf/redis-7000.conf
#redis-server /data/redis/conf/redis-7001.conf
#redis-server /data/redis/conf/redis-7002.conf
192.168.1.108
#redis-server /data/redis/conf/redis-7003.conf
#redis-server /data/redis/conf/redis-7004.conf
#redis-server /data/redis/conf/redis-7005.conf
起動プロセスとポートを2台のホストでそれぞれ表示します.
# ps -ef|grep redis
root 4663 1 0 10:53 ? 00:00:09 redis-server 192.168.1.107:7000 [cluster]
root 4667 1 0 10:53 ? 00:00:09 redis-server 192.168.1.107:7001 [cluster]
root 5566 1 0 12:12 ? 00:00:06 redis-server 192.168.1.107:7002 [cluster]
root 5611 5313 0 14:49 pts/1 00:00:00 grep redis
# netstat -tnlp | grep redis
tcp 0 0 192.168.1.107:7000 0.0.0.0:* LISTEN 4663/redis-server 1
tcp 0 0 192.168.1.107:7001 0.0.0.0:* LISTEN 4667/redis-server 1
tcp 0 0 192.168.1.107:7002 0.0.0.0:* LISTEN 5566/redis-server 1
tcp 0 0 192.168.1.107:17000 0.0.0.0:* LISTEN 4663/redis-server 1
tcp 0 0 192.168.1.107:17001 0.0.0.0:* LISTEN 4667/redis-server 1
tcp 0 0 192.168.1.107:17002 0.0.0.0:* LISTEN 5566/redis-server 1
クラスタの作成
redis-trib.rb :
http://weizijun.cn/2016/01/08/redis%20cluster%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7redis-trib-rb%E8%AF%A6%E8%A7%A3/
# redis-trib.rb create --replicas 1 192.168.1.107:7000 192.168.1.107:7001 192.168.1.107:7002 192.168.1.108:7003 192.168.1.108:7004 192.168.1.108:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.1.108:7003
192.168.1.107:7000
192.168.1.108:7004
Adding replica 192.168.1.107:7001 to 192.168.12.108:7003
Adding replica 192.168.1.108:7005 to 192.168.12.107:7000
Adding replica 192.168.1.107:7002 to 192.168.12.108:7004
M: d0ce4d4eb8c503267ffea606e90d1c537a83a22e 192.168.1.107:7000
slots:5461-10922 (5462 slots) master
S: 24ca2753885db7f37c0e0077b1f43eb2b1a52e42 192.168.1.107:7001
replicates 8ee448821d5e757af73bab65861340e557b8cd14
S: 90c36924c71ae924b1179ff1a384c53e5ea2e484 192.168.1.107:7002
replicates 5a93221a3281f88f9984c24b6e1d6f08b3685c89
M: 8ee448821d5e757af73bab65861340e557b8cd14 192.168.1.108:7003
slots:0-5460 (5461 slots) master
M: 5a93221a3281f88f9984c24b6e1d6f08b3685c89 192.168.1.108:7004
slots:10923-16383 (5461 slots) master
S: a63176f88cbf58ab879421148da3b171f169540d 192.168.1.108:7005
replicates d0ce4d4eb8c503267ffea606e90d1c537a83a22e
Can I set the above configuration? (type 'yes' to accept): yes # 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.1.107:7000)
M: d0ce4d4eb8c503267ffea606e90d1c537a83a22e 192.168.1.107:7000
slots:5461-10922 (5462 slots) master
M: 24ca2753885db7f37c0e0077b1f43eb2b1a52e42 192.168.1.107:7001
slots: (0 slots) master
replicates 8ee448821d5e757af73bab65861340e557b8cd14
M: 90c36924c71ae924b1179ff1a384c53e5ea2e484 192.168.1.107:7002
slots: (0 slots) master
replicates 5a93221a3281f88f9984c24b6e1d6f08b3685c89
M: 8ee448821d5e757af73bab65861340e557b8cd14 192.168.1.108:7003
slots:0-5460 (5461 slots) master
M: 5a93221a3281f88f9984c24b6e1d6f08b3685c89 192.168.1.108:7004
slots:10923-16383 (5461 slots) master
M: a63176f88cbf58ab879421148da3b171f169540d 192.168.1.108:7005
slots: (0 slots) master
replicates d0ce4d4eb8c503267ffea606e90d1c537a83a22e
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered. #
クラスタ検証
192.168.1.107 7002 , 192.168.1.108 7005 ,
redis-cli -h 192.168.31.245 -c -p 7002 , -C , redis.conf
bind ip , -h 。
# redis-cli -h 192.168.1.107 -c -p 7002
192.168.1.108:7003> set test01 "this is test01"
OK
192.168.1.108:7003>
# redis-cli -h 192.168.1.108 -c -p 7005
192.168.12.108:7005> get test01
-> Redirected to slot [1840] located at 192.168.12.108:7003
"this is test01"
。
Redisクラスタは、データをマスターノードに存在させ、そのマスターと対応するsalveとの間でデータ同期を行います.データを読み出すと、コンシステンシハッシュアルゴリズムに基づいて対応するmasterノードにもデータが取得される.対応するsalveノードは、1つのmasterが削除された後にのみ起動され、masterとして機能します.
3
のプライマリノードが必要です.そうしないと、クラスタの作成に失敗し、生存するプライマリノード数が合計ノード数の半分未満になると、クラスタ全体がサービスを提供できません.