`

[转]Redis集群_3.redis主从自动切换Sentinel

阅读更多

转自:http://www.2cto.com/database/201502/377061.html

Redis Sentinel
Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中

一、Sentinel作用:
1):Master状态检测 
2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave
3):Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
二、Sentinel工作方式:
1):每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令
2):如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。
3):如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。
4):当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线
5):在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令
6):当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次
7):若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除。 
若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除。

主观下线和客观下线
主观下线:Subjectively Down,简称 SDOWN,指的是当前 Sentinel 实例对某个redis服务器做出的下线判断。
客观下线:Objectively Down, 简称 ODOWN,指的是多个 Sentinel 实例在对Master Server做出 SDOWN 判断,并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master Server下线判断,然后开启failover.

SDOWN适合于Master和Slave,只要一个 Sentinel 发现Master进入了ODOWN, 这个 Sentinel 就可能会被其他 Sentinel 推选出, 并对下线的主服务器执行自动故障迁移操作。
ODOWN只适用于Master,对于Slave的 Redis 实例,Sentinel 在将它们判断为下线前不需要进行协商, 所以Slave的 Sentinel 永远不会达到ODOWN。


三、配置:
1:指定监听Master(三个节点)
# vi /main/redis/sentinel.conf
port 26379
daemonize yes
sentinel monitor mymaster 192.168.100.211 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 900000
logfile "/main/redis/logs/sentinel.log"

#上面配置文件说明如下:
#第一行指定sentinel端口号
#第二行指定sentinel为后台启动
#第三行指定Sentinel去监视一个名为 mymaster 的Master,Master的IP地址为192.168.100.211,端口号为6379,最后的2表示当有2个Sentinel检测到Master异常时才会判定其失效,即只有当2个Sentinel都判定Master失效了才会自动迁移,如果Sentinel的数量不达标,则不会执行自动故障迁移。
#第四行指定Sentinel判定Master断线的时间。(单位为毫秒,判定为主观下线SDOWN)
#第五行指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态


2:启动sentinel(三个节点):
# /main/redis/src/redis-sentinel /main/redis/sentinel.conf

3:设置开机启动(三个节点)
# echo "/main/redis/src/redis-sentinel /main/redis/sentinel.conf" >> /etc/rc.local


四、注意点:
1):首次启动时,必须先启动Master
2):Sentinel 只在 server 端做主从切换,app端要自己开发(例如Jedis库的SentinelJedis,能够监控Sentinel的状态)
3):若Master已经被判定为下线,Sentinel已经选择了新的Master,也已经将old Master改成Slave,但是还没有将其改成new Master。若此时重启old Master,则Redis集群将处于无Master状态,此时只能手动修改配置文件,然后重新启动集群

到此redis集群配置完毕

分享到:
评论

相关推荐

    Redis集群-Redis安装、Redis主从复制、哨兵、Redis集群

    Redis集群是Redis的一种高可用性解决方案,通过主从复制、哨兵和集群三大技术模块来实现高可用性和可扩展性。本文将对Redis集群进行详细的介绍,包括Redis安装、主从复制、哨兵和集群的配置和实现。 一、Redis安装 ...

    redis集群离线安装包.zip

    - 考虑使用哨兵(Sentinel)系统监控集群状态,自动处理主从切换。 - 使用AOF(Append Only File)持久化方式,保证数据安全性。 - 根据实际需求,合理分配槽位,平衡各节点负载。 通过以上步骤和知识点,您可以...

    redis_windows.rar

    其次,哨兵(Sentinel)系统是Redis的高可用性解决方案,它可以监控整个Redis集群的状态,执行自动故障检测、故障宣告和故障恢复。在本压缩包中,设置两个哨兵节点可以提高监控的可靠性,当多数哨兵认为主节点失效时...

    redis6.0.7_x64编译版.rar

    4. **redis-sentinel.exe**:Sentinel 是 Redis 的高可用性解决方案,它可以监控主从集群的状态,自动处理主节点故障转移。 5. **redis-check-rdb.exe** 和 **redis-check-aof.exe**:这两个工具分别用于检查 RDB 和...

    redis-7.0.7_linux_x86.tar.gz

    - **哨兵系统(Sentinel)**:监控主从集群状态,自动故障转移,确保服务稳定。 5. **Redis事务**: Redis支持事务,用户可以一次性执行多条命令,确保原子性。 6. **Redis集群**: Redis 3.0开始支持集群模式...

    redis_demo.zip

    此外,项目可能还涉及了数据持久化策略,如RDB(Redis Database Backup)或AOF(Append Only File),以及主从复制、Sentinel哨兵系统或Cluster集群等高可用性方案。 最后,"demo"可能是项目的主类或者一个演示用例...

    redis64-3.0.501.rar

    3. 主从复制:Redis支持主从复制,可以创建多个从节点,以实现数据备份和负载均衡。当主节点发生故障时,可以手动或自动切换到从节点,保证服务连续性。 4. 哨兵系统(Sentinel):哨兵是Redis提供的高可用性解决...

    基于phpredis封装的redis-sentinel客户端redis-sentinel.zip

    redis-sentinel 就像他的名字一样,他是一个哨兵,监控 master 状态,如果超过规定时间没有响应,则自动进行主从切换,期间会有一段时间(决定于具体的配置参数)redis集群无法提供服务 。原理类似 mysql 的 MHA。...

    Redis集群搭建篇.docx

    本文将详细介绍如何搭建一个Redis集群,包括主从复制、哨兵机制以及集群模式。 #### 二、准备工作 在进行Redis集群搭建之前,我们需要准备以下几项工作: 1. **环境准备**:确保所有服务器或虚拟机上的Redis版本...

    linux redis安装(redis-2.6.14.tar.gz)

    在生产环境中,你可能还需要关注Redis的主从复制、哨兵监控(Sentinel)和集群(Cluster)功能。 记住,为了在系统启动时自动启动Redis,你还需要创建一个启动脚本和服务单元文件。对于Systemd系统,可以创建一个名...

    redis-api.tar.gz_REDIS C#_c redis_cut_redis

    在 StackExchange.Redis 库中,可以通过配置多个 Sentinel 地址来建立连接,客户端会自动处理节点间的切换,确保服务的连续性。 网络中断是分布式系统中常见的问题。在描述中提到的 "support nonblock (when ...

    redis主从备份双机热备集群简洁配置方式

    redis主从备份双机热备集群简洁配置方式,主要配置redis.conf文件和sentinel.conf文件,可以实现主从自动切换,宕机也不怕

    sentinel_conf.zip

    Redis Sentinel是Redis官方提供的一种高可用性...正确配置和管理Sentinel实例对于构建可靠的Redis集群至关重要。在实际使用中,需要根据具体需求调整Sentinel的配置参数,并确保Sentinel实例的网络连通性和配置一致性。

    windows redis 主从集群实例加哨兵集群

    Windows Redis主从集群及哨兵集群的搭建是提高Redis服务的可用性和数据安全性的重要手段。下面将详细介绍这两个概念以及如何在Windows环境中实现。 1. Redis主从集群: 主从复制是Redis提供的一种数据备份和故障...

    redis-sentinel.tar.gz

    Sentinel 系统还提供了客户端连接指南,帮助应用在主从切换后自动连接到新的主节点。 在“redis-sentinel.tar.gz”中,我们可以期待找到以下内容: 1. **配置脚本**:这些脚本可能用于初始化 Sentinel 实例,配置...

    Redis哨兵模式配置文件.zip

    Redis Sentinel(哨兵)模式是Redis的一个高可用性(HA)解决方案,用于监控、故障检测以及主从切换。在这个配置中,我们有三台服务器,其中一台作为...正确配置和使用Sentinel,对于运行关键业务的Redis集群至关重要。

    redis集群sentinel主从复制

    redis集群sentinel主从复制 已经配置好的案例,放在conf目录下。详情可以查看我的博客:http://blog.csdn.net/caiwenfeng_for_23/article/details/45695581

    redis集群搭建及配置.docx

    1. 修改sentinel.conf:Sentinel是Redis的高可用性解决方案,负责监控主从状态,自动故障转移。在`sentinel.conf`中配置主服务器信息,如`sentinel monitor mymaster 主服务器IP 主服务器端口 quorum`,其中quorum是...

    Redis主从复制和集群配置

    3. **自动故障转移**:当主服务器故障时,Sentinel会自动将其中一个从服务器提升为主服务器,并通知其他从服务器切换到新的主服务器上。 **2.2 Sentinel配置** - **配置文件修改**:编辑`sentinel.conf`文件,添加...

    redis哨兵模式搭建.rar

    3. 配置Redis主从复制: 在`/etc/redis/redis.conf`配置文件中,为主服务器设置`slaveof`选项,指定主服务器的IP和端口,然后重启Redis服务。 4. 安装Sentinel: ```bash sudo apt-get install redis-sentinel ...

Global site tag (gtag.js) - Google Analytics