Redis哨兵模式搭建

本文来说下Redis哨兵模式搭建

文章目录

  • Redis SLAVEOF命令
  • Sentinel模式概述
  • Redis-sentinel搭建
    • 三台服务器的主从集群
      • 复制两份相同的redis
      • 添加启动脚本
      • 启动测试
    • Redis-sentinel搭建
      • 添加sentinel.conf配置文件
      • 添加启动脚本
      • 启动测试
  • 场景演示


Redis SLAVEOF命令

Redis SLAVEOF命令

Redis SLAVEOF命令可以动态更改从属的复制设置。如果Redis服务器已经充当从站命令SLAVEOF NO ONE 会关掉复制,转Redis服务器为主。在适当的形式SLAVEOF主机端口将使另一台服务器监听指定的主机名和端口为从机。如果服务器已经是一个从于一个主,SLAVEOF主机端口将停止对旧服务器的复制,并开始对新的同步,丢弃旧的数据集。

redis SLAVEOF命令的基本语法如下所示:

redis 127.0.0.1:6379> SLAVEOF host port  

Sentinel模式概述

以下是哨兵机制的简易流程,Redis6379为master、Redis6380为slave、Redis6381为slave之后的搭建流程也遵循这一过程:

Redis哨兵模式搭建_第1张图片
Sentinel模式是用于监控Redis集群中master状态的工具,它是一种特殊的模式,也是一个独立的进程。同时Sentinel也是Redis的高可用性解决方案,它负责监控一个或者多个master服务器及所有的slave服务器;当某个master服务宕机后,sentinel中某个哨兵监控到这一情况,系统不会马上进行failover,因为这只是某个哨兵的主观认为,不代表最终结论,这种现象称为主观下线(Subjectively Down, 简称 SDOWN)。当后面哨兵也检测到相同情况,并且达到一定数量时,哨兵之间会进行投票,投票结果会由其中一个sentinel发起并进行failover操作,切换成功后通过发布订阅模式通知其他sentinel把自己监控的slave实现切换主机,这一过程称之为客观下线(Objectively Down, 简称 ODOWN),当前master服务恢复之后设置为slave。

哨兵模式

Redis哨兵模式搭建_第2张图片

master宕机

Redis哨兵模式搭建_第3张图片

故障切换(failover)

Redis哨兵模式搭建_第4张图片

主机恢复

Redis哨兵模式搭建_第5张图片


Redis-sentinel搭建

三台服务器的主从集群

复制两份相同的redis

将解压后的redis文件复制出两份,分别命名为redis6379、redis6380,redis6381并修改redis6380和redis6381对应的redis.windows.conf文件,分别修改以下数据:

Redis哨兵模式搭建_第6张图片

需要修改的配置

port 6380

# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379

# 如果redis设置了密码的话,需要设置以下内容
# masterauth <master-password>
masterauth "123456"

添加启动脚本

@echo off


REM 获取当前脚本所在目录
SET CURRENT_DIR=%~dp0

REM 加载修改密码以后的配置文件
start cmd /c %CURRENT_DIR%/redis-server redis.windows.conf


REM pause

redis的启动脚本

Redis哨兵模式搭建_第7张图片


启动测试

先启动master后启动slave,具体信息如图所示:

Redis哨兵模式搭建_第8张图片


Redis-sentinel搭建

添加sentinel.conf配置文件

在redis6379~6381文件中新增一个名为sentinel.conf 的文件。配置内容如下:

# 以redis6379为例,其他同理只需要修改端口

# Sentinel运行端口
port 26379

# 设置监控地址,为对应的主redis库的内网地址
sentinel monitor mymaster 127.0.0.1 6379 2

# 3s内master无响应,则认为master宕机
sentinel down-after-milliseconds mymaster 3000

# 10s后,master仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000

# 执行故障转移时,slave同时对新master进行同步
sentinel parallel-syncs mymaster 1

# 如果设置了密码,需要配置密码信息
masterauth "123456"

添加启动脚本

title redis-sentinel-26379                      

redis-server.exe sentinel.conf --sentinel

Redis哨兵模式搭建_第9张图片


启动测试

Redis哨兵模式搭建_第10张图片


场景演示

场景1:主服务器宕机

Redis哨兵模式搭建_第11张图片
Redis哨兵模式搭建_第12张图片

场景2:master6380重新启动

Redis哨兵模式搭建_第13张图片

你可能感兴趣的:(核心知识点,redis数据库,redis)