Bootstrap

Redis Sentinel看完这篇就够了

在这里插入图片描述

摘要

现阶段的Redis集群主要有两种,一种是高可用集群,Redis Sentinel,一主多从架构,每个实例都持有完整的数据。另一种是分布式集群,Redis Cluster,多主架构,数据分布在各个实例之间,每个实例都负责数据的读写。今天我们来看看Redis Sentinel的理论与实践。

Sentinel

功能

Redis 的 Sentinel 系统用于管理多个 Redis 服务器, 该系统执行以下三个任务:

  • 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
  • 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
  • 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

性质

Sentinel是一个分布式系统,Sentinel本身设计为在有多个Sentinel进程协同合作的配置中运行。优点如下:

  • 多个Sentinel投票决定Master的自动故障转移,降低误判率;
  • 如果故障转移系统是单点的,那个整个系统无法达到高可用。

部署前需要了解的基本知识

运行Sentinel时必须使用配置文件,否则Sentinel只会拒绝启动。

Sentinels默认情况下会监听TCP端口26379的连接,因此,要使Sentinels正常工作,服务器的端口26379 必须打开才能从其他Sentinel实例的IP地址接收连接。!!!这一点十分重要!!!

  • 一个健壮的系统至少需要三个Sentinel实例。

  • 应将三个Sentinel实例放置到独立的计算机或虚拟机中。

  • 因为Redis使用异步复制,所以Sentinel + Redis高可用方案。有关异步复制的内容可以参考《浅析Redis复制过程》。

  • 客户端必须支持Sentinel。

环境

部署架构图

在这里插入图片描述

部署过程

整体部署过程为先部署上图下半部分的主从集群,再部署sentinel集群。

部署主从集群

分别在Master、Slave1、Slave2下载redis,存放路径 /usr/redis/

[root@localhost ~]wget -P /usr/redi
;