REDIS単機マルチインスタンス+歩哨モード

10839 ワード

1インストールパッケージのダウンロード
cd/usr/local/src wget http://download.redis.io/releases/redis-5.0.2.tar.gz
2解凍
tar zxvf redis-5.0.2.tar.gz
3依存パッケージのインストール
yum -y install gcc gcc-c++
4コンパイルインストール
cd redis-5.0.2
make MALLOC=libc && make install
5 redisを構成するプライマリとセカンダリ
[root@localhost redis-5.0.2]# cp redis.conf/etc/redis_6379.conf [root@localhost redis-5.0.2]# cp redis.conf/etc/redis_6380.conf [root@localhost redis-5.0.2]# cp redis.conf/etc/redis_6381.confメイン構成変更:redis_6379.conf
bind 0.0.0.0 replicaof 192.168.208.146
daemonize yesバックグラウンドデーモンport 6379構成から変更
=redis_6380.conf==
bind 0.0.0.0
daemonize yesバックグラウンドガード
port 6380 replicaof 192.168.208.146
replicaof 192.168.10.131 6379
Replica-priority 100優先度
redis_6381.conf
bind 0.0.0.0
daemonize yesバックグラウンドガード
port 6381 replicaof 192.168.208.146
replicaof 192.168.10.131 6379
Replica-priority 90優先度
6     
[root@localhost ~]# redis-server  /etc/redis_6379.conf
28308:C 18 Nov 2019 01:54:16.096 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28308:C 18 Nov 2019 01:54:16.096 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=28308, just started
28308:C 18 Nov 2019 01:54:16.096 # Configuration loaded
[root@localhost ~]# redis-server  /etc/redis_6380.conf
28313:C 18 Nov 2019 01:54:23.078 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28313:C 18 Nov 2019 01:54:23.078 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=28313, just started
28313:C 18 Nov 2019 01:54:23.078 # Configuration loaded
[root@localhost ~]# redis-server  /etc/redis_6381.conf
28320:C 18 Nov 2019 01:54:26.226 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28320:C 18 Nov 2019 01:54:26.226 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=28320, just started
28320:C 18 Nov 2019 01:54:26.226 # Configuration loaded
28320:S 18 Nov 2019 01:54:26.230 # Creating Server TCP listening socket 0.0.0.0:6379: bind: Address already in use

7主従の検証
[root@localhost~]#redis-cli-p 6379 127.0.0.1:6379>set wg 01 xoo OK上からkeyがwg 01の情報を取る[root@localhost~]#redis-cli-p 6380 127.0.0.1:6380>get wg 01「xxoo」127.0.0.1:6380>8配置哨兵モード[root@localhost redis-5.0.2]# pwd/usr/local/src/redis-5.0.2 [root@localhost redis-5.0.2]# cp sentinel.conf/etc/sentinel_26379.conf [root@localhost redis-5.0.2]# cp sentinel.conf/etc/sentinel_26380.conf [root@localhost redis-5.0.2]# cp sentinel.conf/etc/sentinel_26381.conf#番号の先頭を削除:g/^#/d
空白行の削除:g/^$/d
vim/etc/sentinel_26379.conf
port 26379 daemonize yes pidfile/var/run/redis-sentinel.pid logfile"/var/log/redis/sentinel_26379.log"dir/tmp sentinel monitor mymaster 192.168.10.131 6379 2#sentinelの傍受先がip:portのmasterであることをsentinelに伝えます.ここのmaster-nameはカスタマイズできます.quorumは1つの数字で、sentinelが1つのmasterが失効したと考えている場合、#masterは本当に失効したと計算します1 sentinel down-after-milliseconds mymaster 30000#この構成項目はどれだけの失効時間が必要かを指定して、1つのmasterはこのsentinelに主観的に使用できないと見なされます.単位はミリ秒、デフォルトは30秒sentinel parallel-syncs mymaster 1#この構成項目は、failoverプライマリ・スタンバイ・スイッチングが発生したときに最大何個のslaveが同時に新しいmasterを同期できるかを指定します.#この数字が小さいほどfailoverを完了するのに要する時間は長くなりますが、この数字が大きいほど、replicationのために使用できないslaveが多くなることを意味します.この値を1に設定することで、毎回1つのslaveだけがコマンドリクエストを処理できない状態にあることを保証できます.sentinel failover-timeout mymaster 180000#failoverフェイルオーバを行う場合、すべてのslavesが新しいmasterを指す最大時間を構成するsentinel deny-scripts-reconfig yes#スクリプトのリセットを回避し、デフォルト値yes vim/etc/sentinel_26380.conf port 26380 daemonize no pidfile/var/run/redis-sentinel_26380.pid logfile “/var/log/redis/sentinel_26380.log” dir/tmp sentinel monitor mymaster 192.168.10.131 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes vim/etc/sentinel_26381.conf port 26381 daemonize yes pidfile/var/run/redis-sentinel_26381.pid logfile “/var/log/redis/sentinel_26381.log” dir/tmp sentinel monitor mymaster 192.168.10.131 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes mkdir/var/log/redids
9哨兵を開く
redis-server/etc/sentinel_26379.conf --sentinel
redis-server/etc/sentinel_26380.conf --sentinel
redis-server/etc/sentinel_26381.conf --sentinel
10検証[root@localhost redis-5.0.2]# redis-cli -p 26379 info Sentinel Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master 0:name=mymaster,status=ok,address=192.168.10.131:6379,slaves=2,sentinels=3 kill 6379ポート
主の移行に成功しました[root@localhost redis-5.0.2]# redis-cli -p 26379 info Sentinel #Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=mymaster,status=ok,address=192.168.10.131:6381,slaves=2,sentinels=3