Redis主从同步+自动切换

一构建:

1.两台centos7服务器:

      192.168.1.100192.168.1.115

2. 安装必须的软件包:

yum install gcc gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim ruby rubygems unzip git -y

3. 下载redis源码包并安装:

wget http://download.redis.io/releases/redis-3.2.3.tar.gz

tar -zxvf redis-3.2.3.tar.gz

cd redis-3.2.3

make && make install

4.将redis目录转移至/usr/loacl/redis下:

(1).创建redis目录:

cd /usr/local

mkdir -p redis/bin

mkdir -p redis/etc

(2) .将源码包下面的reids.conf 复制到新建的etc下,将源码包下面的src目录中的redis-server redis-cli  redis-check-aof redis-benchmark mkreleasehdr.sh 文件复制到新建的bin目录下:

  cd /usr/local/redis

  cp /root/redis-3.2.3/redis.conf etc/

  cd /root/redis-3.2.3/src/

  cp redis-server redis-cli redis-check-aof redis-benchmark mkreleasehdr.sh /usr/local/redis/bin/

5.配置redis主从复制:

(1) .在主机192.168.1.100(主)的配置:




Redis主从同步+自动切换_第1张图片

Redis主从同步+自动切换_第2张图片

(2).在主机192.168.1.115(从)上的配置:

至此,主从配置完成,进入/usr/local/redis启动两台实例:

       bin/redis-server etc/redis.conf  

此时的redis启动直接占据控制台,我们可以将其修改为后台启动,ctrl+c关闭redis,编辑etc目录下的redis.cnf文件将daemonize no改为daemonize yes,重新启动即可

使用命令查看主从复制状态:



Redis主从同步+自动切换_第3张图片

Redis主从同步+自动切换_第4张图片

至此,主从配置完成,进入/usr/local/redis启动两台实例:

       bin/redis-server etc/redis.conf  

此时的redis启动直接占据控制台,我们可以将其修改为后台启动,ctrl+c关闭redis,编辑etc目录下的redis.cnf文件将daemonize no改为daemonize yes,重新启动即可

使用命令查看主从复制状态:

Redis主从同步+自动切换_第5张图片

显示

指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态。

状态为:192.168.1.100为master,192.168.1.115为slave

6. 使用哨兵(Sentinel)进行主从间的故障自动切换,我们在192.168.1.100上搭建sentinel(哨兵)

           cd /root/redis-3.2.3/

           cp sentinel.conf /usr/local/redis/etc/

           cd /usr/local/redis/etc/

           vim sentinel.conf

(1).路径:

Redis主从同步+自动切换_第6张图片

(2).指定sentinel去监视一个名为mymaster的Master,Master的IP地址为192.168.1.100

(3).如果redis有登陆密码的话必须配置这项参数:


(4)连接192.168.1.100的redis的密码

Redis主从同步+自动切换_第7张图片

(5).指定Sentinel判定Master断线的时间。(单位为毫秒,判定为主观下线SDOWN)

Redis主从同步+自动切换_第8张图片


(6).如果在该时间(ms)内未能完成failover(即故障时master/slave自动切换

)操作,则认为该failover失败。

Redis主从同步+自动切换_第9张图片

指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态。

sentinel parallel-syncs my mymaster 1

Redis主从同步+自动切换_第10张图片

我们可以看到主为192.168.1.100,从为192.168.1.115,接下来验证故障切换功能:

Redis主从同步+自动切换_第11张图片


Redis主从同步+自动切换_第12张图片


Redis主从同步+自动切换_第13张图片

当我们关闭主时,master自动变为192.168.1.115,我们重新启动192.168.1.115时,发现192.168.1.115已经变为slave服务器,至此哨兵模式的故障切换完成(可在主从上同时部署哨兵)。

附加:

   登陆redis的命令:

bin/redis-cli -h 192.168.1.100 -p 6379 -a pwd@123

bin/redis-cli -h 192.168.1.115 -p 6380 -a pwd@123

bin/redis-cli -h 192.168.1.100 -p 6379 -a pwd@123 info replication

 

bin/redis-cli -h 192.168.1.115 -p 6380 -a pwd@123 info replication





你可能感兴趣的:(Redis主从同步+自动切换)