redis主従配置及び高可用性哨兵

16216 ワード

一.インストールredis


1.解凍

tar -zxvf redis-3.2.9.tar.gz

2.インストール

*       : cd redis-3.2.9
*     :make
*         ,       gcc  ,yum -y install gcc
*   make    makemake clean 、make distclean     
*        error: jemalloc/jemalloc.h: No such file or directory   make MALLOC=libc

3.起動と停止

    redis-3.2.9/src/     :
./redis-server &(    )
./redis-cli shutdown(  )
    kill (-9) pid         ,    

二.redisマスタスレーブ構成


1.プロファイルの変更

[root@localhost redis-3.2.9]# cp redis.conf redis6380.conf
[root@localhost redis-3.2.9]# cp redis.conf redis6381.conf 
[root@localhost redis-3.2.9]# cp redis.conf redis6382.conf 

注:redis 6380.confはプライマリプロファイルです
include /usr/local/redis-3.2.9/redis.conf
daemonize yes
port 6380
pidfile /var/run/redis_6380.pid
logfile 6380.log
dbfilename dump6380.rdb

redis6381.confとredis 6382.confはプロファイルから
include /usr/local/redis-3.2.9/redis.conf
daemonize yes
port 6382
slaveof 127.0.0.1 6380
pidfile /var/run/redis_6382.pid
logfile 6382.log
dbfilename dump6382.rdb

slaveeof 127.0.0.1 6380(プライマリのポート番号)は、スレーブプロファイルにのみ構成されます.

2.異なるプロファイルでredisを起動する

[root@localhost src]# ./redis-server ../redis6380.conf
[root@localhost src]# ./redis-server ../redis6381.conf
[root@localhost src]# ./redis-server ../redis6382.conf

3.プロセスが開始されたかどうかを確認する

[root@localhost ~]# ps -ef | grep redis
root 4088 1  0 21:23 ?  00:00:00 ./redis-server *:6380
root 4095 1  0 21:24 ?  00:00:00 ./redis-server *:6381
root 4099 1  0 21:25 ?  00:00:00 ./redis-server *:6382

4.ポート番号を指定してコマンドモードに入り、ロールを表示する

[root@localhost src]# ./redis-cli -p 6381

主な役割情報
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6382,state=online,offset=1219,lag=1
slave1:ip=127.0.0.1,port=6381,state=online,offset=1219,lag=0
master_repl_offset:1219
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:1218

からのロール情報
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:183
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

5.テスト


メインにデータを書き込み、そこからメインサーバの圧力を分担できるように自動的にコピーし、読み書きを分離して書くときにメインサーバに書き、読むときにサーバから読む(mysqlの主従に類する)

三.高可用性哨兵


1.背景

  Master     Slave
Slave  ,            
Master  ,       
    Slave  slaveof no one    Master,  Slave  slaveof        Master,        
        ,        ,    Sentinel  ,      Failover  
7*24     

2.プロファイルの変更


デフォルトのポート番号は26379です
[root@localhost redis-3.2.9]# cp sentinel.conf sentinel26380.conf 
[root@localhost redis-3.2.9]# cp sentinel.conf sentinel26381.conf 
[root@localhost redis-3.2.9]# cp sentinel.conf sentinel26382.conf 

プロファイルの変更
[root@localhost redis-3.2.9]# vim sentinel26380.conf

  sentinel      :
1port 26380port 26381port 26382
2、   sentinel monitor mymaster 127.0.0.1 6380 2

注意:vimを入力すると、ヒント-bash:vim:command not found
   rpm -qa|grep vim   ,   vim      ,          :
[root@centos]# rpm -qa |grep vim 
vim-minimal-7.0.109-6.el5
vim-common-7.0.109-7.2.el5
vim-enhanced-7.0.109-7.2.el5

          ,   vim-enhanced  ,     yum -y install vim-enhanced    :
yum -y install vim-enhanced
            ,       yum -y install vim*   
yum -y install vim*

3.歩哨を起動する

./redis-sentinel  ../sentinel26380.conf
./redis-sentinel  ../sentinel26381.conf
./redis-sentinel  ../sentinel26382.conf

4.テスト


shutdown 6380ポートのredisのプロセス、哨兵は故障を監視して移転します
4266:X 08 Jul 22:12:06.192 # +sdown master mymaster 127.0.0.1 6380(      )
4266:X 08 Jul 22:12:06.211 # +new-epoch 1
4266:X 08 Jul 22:12:06.214 # +vote-for-leader 3508680a52db8da31b5a224ed0a73b3bdb5cefc6 1(  )
4266:X 08 Jul 22:12:06.276 # +odown master mymaster 127.0.0.1 6380 #quorum 3/2
4266:X 08 Jul 22:12:06.277 # Next failover delay: I will not start a failover before Sat Jul 8 22:18:06 2017
4266:X 08 Jul 22:12:06.948 # +config-update-from sentinel 3508680a52db8da31b5a224ed0a73b3bdb5cefc6 127.0.0.1 26382 @ mymaster 127.0.0.1 6380
4266:X 08 Jul 22:12:06.948 # +switch-master mymaster 127.0.0.1 6380 127.0.0.1 6381(     6381   )
4266:X 08 Jul 22:12:06.948 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6381
4266:X 08 Jul 22:12:06.948 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
4266:X 08 Jul 22:12:36.963 # +sdown slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381