天天看点

redis主从复制故障转移

Redis主从复制与故障切换

目录

目录1

一.概述1

二. 实验目的2

三.试验环境2

四. 说明2

五. 拓扑2

六. 实施步骤2

6.1、分别安装redis2.8.32

6.2、配置主从同步3

6.3、配置主从故障切换4

七. 注意事项4

一.概述

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。

Redis 2.8版开始正式提供名为Sentinel的主从切换方案,Sentinel用于管理多个Redis服务器实例,主要负责三个方面的任务:

    1. 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。

    2. 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。

    3. 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

二. 实验目的

实验用于了解redis主从复制,故障自动切换功能。

三.试验环境

设备名称 操作系统 安装软件
虚拟机(3台) Centos6.8 X64 Redis2.8.3

四. 说明

本实验演示redis主从数据同步,主服务宕机,从服务器被选择为新的主服务器,并自动配置其他从服务器的主服务器为本机。

五. 拓扑

192.168.1.240  主redis  sentinel

192.168.1.241  从redis

192.168.1.242  从redis

六. 实施步骤

6.1、分别安装redis2.8.3

 三台机器分别安装

1、安装

$ yum install gcc -y

$ cd /home/jryknet

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

$ tar xzf redis-2.8.3.tar.gz

$ cd redis-2.8.3

$ make

$ make install

2、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。

mkdir /usr/redis

cp redis-server  /usr/redis

cp redis-benchmark /usr/redis

cp redis-cli  /usr/redis

cp /home/redis-2.8.3/redis.conf  /usr/redis

cd /usr/redis

3、启动Redis服务。

$ redis-server   redis.conf

4、然后用客户端测试一下是否启动成功。

$ redis-cli

redis> set age 13

OK

redis> get age

"13"

5、配置为后台启动

vi /usr/redis/redis.conf

daemonize yes

#日志目录

logfile "/tmp/redis.log”

6、配置服务脚本启动(略)

启动方式

/etc/init.d/redis

Usage: /etc/init.d/redis {start|stop|restart|force-reload}

6.2、配置主从同步

配置文件使用/usr/redis目录下的redis.conf

1、配置从服务器

主服务器192.168.1.240不需配置

从服务器 192.168.1.241,192.168.1.242修改配置文件,添加

slaveof 192.168.1.240 6379

2、测试主从效果

redis主从复制故障转移
redis主从复制故障转移

6.3、配置主从故障切换

1、主服务器192.168.1.240配置

cp /home/jryknet/redis-2.8.3/sentinel.conf /usr/redis/ #配置文件

cp /home/jryknet/redis-2.8.3/src/redis-sentinel /usr/redis/  #程序脚本文件

2、配置/usr/redis/sentinel.conf ,启动sentinel 执行命令redis-sentinel

port 26379

daemonize no

logfile "/var/redis/log/sentinel.log"

sentinel monitor mymaster 192.168.1.240 6379 1

sentinel down-after-milliseconds mymaster 60000

sentinel failover-timeout mymaster 180000

sentinel parallel-syncs mymaster 1

3,、查看状态

redis-cli info |grep role

role:master

role:slave

4、测试

停止主redis,切换为192.168.1.242为新的master

redis主从复制故障转移

当旧的master启动,讲转换为从服务器

redis主从复制故障转移

原来的master配置文件redis.conf 自动添加slaveof 192.168.1.242 6379,变为从服务器

原来的master配置文件sentinel.conf 自动修改为sentinel monitor mymaster 192.168.1.242 6379 1

七. 注意事项

继续阅读